يعطي NSDateFormatter قيم مختلفة على الجهاز وجهاز محاكاة؟ ما هو العمل حولها؟

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

سؤال

وأستخدمه NSDateFormatter، والمشكلة هي مع اتساقه. إذا كنت تستخدم kCFDateFormatterMediumStyle أنه يعطي شكل باسم "26 نوفمبر 2009" في محاكاة ولكن على الجهاز يعطي "26 نوفمبر 2009".

والآن لدي سؤال، هل هذا NSFormatter سائل المتبادلين في المستقبل القريب أو التحديثات من التفاح يمكن أن تغيير نمط مرة أخرى؟

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

المحلول

وNSDateFormatter تنسيقات التاريخ إلى تفضيل المستخدم، استنادا إلى الإعدادات الدولية على الجهاز. على هذا النحو لا يمكن ان تتوقع هذه السلسلة لتكون متسقة بسبب كمية من الطرق المختلفة التي يتم عرض التواريخ في جميع أنحاء العالم.

ولقد وجدت أن أفضل طريقة لتنسيق التاريخ كسلسلة (لاستخدام لاعطاء مزودات الويب وغيرها) هو استخدام NSDateComponents وتحويل هذه إلى سلاسل.

نصائح أخرى

وعلى الرغم من أن الإجابة الأخرى المذكورة أعلاه صحيحة من الناحية الفنية، فإنه لا يوفر لك الحل الذي تبحث عنه. في حين أن التخلف NSDateFormatter لاستخدام لغات المستخدم (وعلى هذا النحو، لن تعطيك نتائج مفيدة) يمكنك طلب لغة محددة للحصول على نتائج متسقة:

NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];

NSLocale *en_US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[frm setLocale:en_US];
[en_US release];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top