এটি আপাতদৃষ্টিতে আমার সবচেয়ে জনপ্রিয় উত্তর হওয়ায় আমি আরও কিছুটা তথ্য ধারণ করতে এটি সম্পাদনা করার চেষ্টা করব।
এর নাম সত্ত্বেও NSDateএবং নিজেই কেবল মেশিনের সময়টিতে একটি বিন্দু চিহ্নিত করে, কোনও তারিখ নয়। NSDateএক বছর, মাস, বা দিন দ্বারা নির্দিষ্ট সময়ে বিন্দুর মধ্যে কোনও সম্পর্ক নেই । তার জন্য, আপনাকে একটি ক্যালেন্ডার উল্লেখ করতে হবে। কোনও নির্দিষ্ট বিন্দু আপনি যে ক্যালেন্ডারে দেখছেন তার উপর ভিত্তি করে বিভিন্ন তারিখের তথ্য ফিরে আসবে (উদাহরণস্বরূপ গ্রেগরিয়ান এবং ইহুদি ক্যালেন্ডার উভয় ক্ষেত্রেই তারিখগুলি সমান নয়), এবং গ্রেগরিয়ান ক্যালেন্ডারটি সর্বাধিক বহুল ব্যবহৃত ক্যালেন্ডার হিসাবে রয়েছে বিশ্ব - আমি ধরে নিচ্ছি - আমরা কিছুটা পক্ষপাতদুষ্ট যা NSDateসর্বদা এটি ব্যবহার করা উচিত। NSDateভাগ্যক্রমে, অনেক বেশি দ্বিপক্ষীয়।
তারিখ এবং সময় অর্জন করতে হবে NSCalendarযেমন আপনি উল্লেখ করেছেন, তবে এটি করার একটি সহজ উপায় আছে:
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]];
NSDateComponentsএটি বর্তমান দিনের বর্তমান সিস্টেম ক্যালেন্ডার থেকে দিন, মাস এবং বছর সম্বলিত একটি সামগ্রী তৈরি করে । ( দ্রষ্টব্য: এটি অগত্যা বর্তমান ব্যবহারকারী-নির্দিষ্ট ক্যালেন্ডার নয়, কেবলমাত্র একটি ডিফল্ট সিস্টেম)
অবশ্যই, আপনি যদি কোনও আলাদা ক্যালেন্ডার বা তারিখ ব্যবহার করেন তবে আপনি সহজেই তা পরিবর্তন করতে পারেন। NSCalendarক্লাস রেফারেন্সে উপলভ্য ক্যালেন্ডার এবং ক্যালেন্ডার ইউনিটের একটি তালিকা পাওয়া যাবে । ক্লাস রেফারেন্স সম্পর্কে আরও তথ্য NSDateComponentsপাওয়া যাবে ।NSDateComponents
রেফারেন্সের জন্য, থেকে পৃথক উপাদানগুলিতে অ্যাক্সেস NSDateComponentsকরা বরং সহজ:
NSInteger day = [components day];
NSInteger month = [components month];
NSInteger year = [components year];
আপনার কেবলমাত্র সচেতন NSDateComponentsথাকতে হবে : আপনি যদি সেই বৈধ তথ্য দিয়ে উত্পন্ন না করেন তবে আপনি যে ক্ষেত্রের জন্য জিজ্ঞাসা করেছেন সেগুলির জন্য বৈধ তথ্য থাকবে না (অর্থাত্ NSCalendarসেগুলি তথ্য সরবরাহ করার জন্য অনুরোধ NSCalendarUnit)। NSDateComponentsনিজের মধ্যে এবং কোনও রেফারেন্স তথ্য নেই - এগুলি কেবলমাত্র সাধারণ কাঠামো যা আপনার অ্যাক্সেসের জন্য সংখ্যা রাখে। উদাহরণস্বরূপ, যদি আপনি কোনও যুগ পেতে চান তবে আপনাকে পতাকা সহ NSDateComponentsজেনারেটর পদ্ধতিটি খাওয়াতে হবে ।NSCalendarNSCalendarUnitEra