لماذا لا يمكنني بشكل صحيح تحليل هذه السلسلة موعد مع NSDateFormatter؟

StackOverflow https://stackoverflow.com/questions/822417

سؤال

وأنا أحاول تحليل سلسلة التي تم إنشاؤها من قبل NSDateFormatter باستخدام NSDateFormatter أخرى بنفس الشكل.

وبدلا من محاولة جعل هذا الحكم السابق له معنى، وهنا بعض التعليمات البرمجية:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *now = [[NSDate alloc] init];

NSString *dateString = [format stringFromDate:now];

NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *parsed = [inFormat dateFromString:dateString];

NSLog(@"\n"
      "now:        |%@| \n"
      "dateString: |%@| \n"
      "parsed:     |%@|", now, dateString, parsed);

وعند تشغيل هذا الرمز، وأتوقع أن <م> تحليل ستتضمن نفس تاريخ <م> الآن لكن بدلا من ذلك الحصول على الإخراج التالية:

now:        |2009-05-04 18:23:35 -0400| 
dateString: |May 04, 2009 18:23| 
parsed:     |2008-12-21 18:23:00 -0500|

وأي شخص يحصل على أي أفكار لماذا يحدث هذا؟

هل كانت مفيدة؟

المحلول

والمشكلة هي أن "YYYY" لا خيار تنسيق التاريخ ICU صالح. تريد "س س س س".

العاصمة 'Y' غير صالحة فقط عند استخدامها مع "أسبوع سنة" الخيار (أي " 'الأسبوع' ث 'من' Y").

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top