मेरे पास एक एएसपी.नेट एमवीसी 3 वेबसाइट है जो JSON के माध्यम से मेरे आईओएस ऐप के साथ संचार करती है। जेएसओएन प्रतिक्रिया में भेजे गए ऑब्जेक्ट्स के हिस्से के रूप में, मेरे पास yyyy-MM-dd HH:mm:ss ZZZ
के प्रारूप में तिथियां हैं जो 2011-04-05 16:28:22 -07:00
आउटपुट करती हैं। मैं आईओएस में इसका विश्लेषण कैसे करूं?आईओएस में दिनांक/समय पार्सिंग: टाइमज़ोन के साथ सौदा कैसे करें (या सौदा नहीं)?
इस कोड को मैं चारों ओर के साथ खिलवाड़ कर रहा हूँ अभी है:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSDate *date = [dateFormatter dateFromString:@"2011-04-05T16:28:22-0700"];
NSLog(@"%@; %@; %@", dateFormatter, date, [NSTimeZone localTimeZone]);
नोट करने के लिए
पहली बात 2011-04-05 16:28:22 -07:00
2011-04-05T16:28:22-0700
, जहां एक T
(बदल देता पहला अंतरिक्ष यह सोचते हैं कि समय के लिए खड़ा है की तरह लग रहे करने के लिए किया है , या जहां स्ट्रिंग का समय भाग से शुरू होता है?), दूसरी जगह हटा दी जाती है और समय क्षेत्र में कोलन हटा दिया जाता है। मुझे लगता है कि मुझे उस स्ट्रिंग को प्रारूपित करने का एक तरीका मिलेगा जो .NET स्ट्रिंग आईओएस के अनुरूप होने के लिए वापस भेज रहा है।
असली मुद्दा यह है कि जेएसओएन प्रतिक्रिया में जो मैंने भेजा है उससे 7 घंटे पहले आउटपुट की गई तारीख है। इसलिए, आईओएस 2011-04-05 16:28:22 -07:00
2011-04-05 23:28:22 +0000
के रूप में आउटपुट करता है, और यह गलत है जहां तक मेरा ऐप चिंतित है।
एकमात्र समाधान जो मैंने पाया है वह JSON में दिनांक 2011-04-05 16:28:22 +00:00
के रूप में भेजना है, लेकिन यह फिर से गलत है क्योंकि मैं वास्तविक तिथि को बदल रहा हूं।
वैसे भी, मैं किसी को एक बार देख लेने और देने के लिए मुझे पता है कि मैं कैसे पार्स कर सकते हैं दिनांक स्ट्रिंग नेट एक NSDate
वस्तु मैं करने के लिए प्रारूप yyyy-MM-dd HH:mm:ss ZZZ
(जो मैं yyyy-MM-ddTHH:mm:ssZZZ
को फिर से लिखा जा सकता है लगता है) के माध्यम से outputting है कि सराहना करेंगे आईओएस में उपयोग कर सकते हैं।
जब आप आईओएस आउटपुट के बारे में बात करते हैं, तो क्या आपका मतलब एनएसएलओजी है? यदि ऐसा है, तो एनएसएलओजी हमेशा जीएमटी आउटपुट को डिफ़ॉल्ट करता है। तो, आपके कोड में कुछ भी गलत नहीं है। –
हां, यही वह है जिसका मैं जिक्र कर रहा था। लेकिन अगर जीएमटी में 'एनएसएलओजी' आउटपुट 'यूलाबेल' आउटपुट कहता है तो क्या? – Gup3rSuR4c
एनएसडीएटी समय जीएमटी के रूप में स्टोर करता है। आपको किसी भी तारीख को प्रदर्शित करते समय [NSDateFormatter] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html) -stringFromDate विधि का उपयोग करना होगा स्ट्रिंग। NSDateFormatter वर्तमान समय क्षेत्र में भी डिफ़ॉल्ट है। –