आपके उदाहरण पर, आप जीएमटी के आधार पर एनएसडीएटी का उदाहरण देते हैं, लेकिन [date description]
(NSLog
में उपयोग किया जाता है) इसे आपके स्थानीय समय में अनुवाद करता है। वहां आपके पास मेल नहीं है।
तो वहाँ दो भागों ध्यान रखना आवश्यक हैः
1. NSDate सृजन (हिब्रू में 2012 ग्रेगोरी में है, लेकिन 5772) NSCalendar और NSTimeZone
आप एक तिथि बना रहे हैं मैन्युअल रूप से आप कैलेंडर को निर्दिष्ट करना चाहिए का उपयोग कर और समय क्षेत्र (22 पीएम लंदन समय, लेकिन 7AM सिडनी समय)।
// Use the user's current calendar and time zone
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setTimeZone: [NSTimeZone systemTimeZone]];
// Specify the date components manually (year, month, day, hour, minutes, etc.)
NSDateComponents *timeZoneComps=[[NSDateComponents alloc] init];
[timeZoneComps setHour:22];
[timeZoneComps setMinute:0];
[timeZoneComps setSecond:0];
// ... year, month, ...
// transform the date compoments into a date, based on current calendar settings
NSDate *date = [calendar dateFromComponents:timeZoneComps];
इस बिंदु पर वर्तमान कैलेंडर का प्रतिनिधित्व करने वाले समय (सेकेंड में) सटीक बिंदु स्टोर करता है।
2. NSDate NSDateFormatter
का उपयोग कर अपने NSDate के नियंत्रित उत्पादन के लिए उत्पादन आप NSDateFormatter है, जो तार में दिनांक कन्वर्ट करने के लिए प्रयोग किया जाता है की जरूरत है।
एप्पल NSDateFormatter Class Reference प्रलेखन के आधार पर
कई गुण आप मिलता है और एक शैली तारीख को सेट फ़ॉर्मेटर कर सकते हैं आप प्रोत्साहित किया जाता है, हालांकि, बदलने के लिए नहीं अलग-अलग सेटिंग रहे हैं, ... । इसके बजाय यदि आप डिफ़ॉल्ट प्रारंभ पर स्थापित सेटिंग्स को स्वीकार करना चाहिए और setDateStyle :, setTimeStyle का उपयोग कर प्रारूप निर्दिष्ट करें:
यह आउटपुट है, जो हर स्थान के लिए अलग है के लिए विशेष रूप से महत्वपूर्ण है। डिफ़ॉल्ट रूप से NSDateFormatter वर्तमान उपयोगकर्ता की लोकेल सेटिंग्स को देखता है। तो एक ही एनएसडीएटी 22.11.2011 18:33:19
, या Nov 22, 2011 6:33:19 PM
, या 2011-11-22 下午6:33:19
या २२-११-२०११ ६:३३:१९ अपराह्
हो सकता है, सभी एक ही इनपुट और उसी कोड के साथ।
और कोड:
// NSDate *date -> NSString *dateString
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
// Medium style date, short style time => "Nov 23, 1937 3:30pm"
NSString *dateString = [dateFormatter stringFromDate:date];
या आप वर्ग विधि localizedStringFromDate:dateStyle:timeStyle:
मुझे आशा है कि इस समस्या को स्पष्ट करता है का उपयोग कर इसे बदलना सकता है।
\t [डीएफ सेट लोकाले: [एनएसएलोकेल वर्तमान लॉकले]] का प्रयास करें; –