لماذا لا يمكنني بشكل صحيح تحليل هذه السلسلة موعد مع NSDateFormatter؟
-
03-07-2019 - |
سؤال
وأنا أحاول تحليل سلسلة التي تم إنشاؤها من قبل 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").
لا تنتمي إلى StackOverflow