जैसा कि ध्यान दिया गया है, आपको पहले अपने एनएसडीएटी को एनएसएसटींग में परिवर्तित करना होगा। यह तुरंत स्पष्ट नहीं है, हालांकि, दिनांक को किस प्रारूप में प्रदर्शित किया जाना चाहिए। उत्तर here पाया जा सकता है: "JSON स्वयं निर्दिष्ट नहीं करता कि तारीखों का प्रतिनिधित्व कैसे किया जाना चाहिए, लेकिन जावास्क्रिप्ट करता है" - ISO8601।
- (NSString *)ISO8601 {
struct tm time;
time_t interval = [self timeIntervalSince1970];
gmtime_r(&interval, &time);
char *x = calloc(1, 21);
strftime_l(x, 20, "%FT%TZ", &time, gmtlocale);
NSString *string = [NSString stringWithUTF8String:x];
free(x);
return string;
}
आप एक JSON पेलोड में वापस एक ISO8601 स्ट्रिंग मिलता है और यह एक NSDate कन्वर्ट करने के लिए चाहते हैं, तो इस वर्ग का उपयोग करें:
यहाँ NSDate के लिए एक सहायक वर्ग से एक ISO8601 रूपांतरण विधि, शिष्टाचार Erica Sadun है NSDate के लिए विधि:
+ (NSDate *)dateFromISO8601:(NSString *)string {
if(!string) return nil;
if (![string isKindOfClass:[NSString class]]) return nil;
struct tm time;
strptime_l([string UTF8String], "%FT%TZ", &time, gmtlocale);
return [NSDate dateWithTimeIntervalSince1970:timegm(&time)];
}
यह समझ में नहीं आता है। ओपी पूछ रहा है कि ** ** एनएसडीएटी को कैसे एन्कोड करें। इसका मतलब है कि उन्हें एनएसडीएटी को एनएसटीटींग में उस शब्दकोश में डालने से पहले कनवर्ट करना चाहिए जो वे JSON एन्कोड करने का प्रयास कर रहे हैं। मेरा उत्तर नीचे एक उदाहरण समाधान दिखाता है। – sumizome
कोई अच्छा समाधान नहीं है। यह सिर्फ एक बाई पास है। मुझे यह जानने की जरूरत है कि इसे एनएसडीएटी के साथ कैसे काम करना है या यदि नहीं, तो यह क्यों हो रहा है। – Nishant