banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

iOS開発におけるNSDateFormatterのNSLocaleの使用はen_US_POSIXまたはen_USです。

iOS SDK で提供される日付と時間のフォーマットオブジェクトは、NSLocale オブジェクトを使用して表示を制御する必要があります。en_US は標準のフォーマットであり、最もよく使用されますが、Java や C# を使っている人々は、iOS SDK で提供される別のフォーマットである en_US_POSIX を無視することがあります。しかし、これらの 2 つのフォーマットは実行後の効果が完全に同じです。

参考コード:

NSDateFormatter *formatter1 = [[[NSDateFormatter alloc] init] autorelease];
[formatter1 setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
NSDateFormatter *formatter2 = [[[NSDateFormatter alloc] init] autorelease];
[formatter2 setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];

[formatter1 setDateFormat:@"yyyy/MM/dd HH:mm"];
[formatter2 setDateFormat:@"yyyy/MM/dd HH:mm"];

NSDate *date = [NSDate date];
NSLog(@"formatter1:%@",[formatter1 stringFromDate]);
NSLog(@"formatter2:%@",[formatter2 stringFromDate]);

en_US_POSIX を使用するべきか、en_US を使用するべきか、Apple は SDK ドキュメントで答えを示しています。

ほとんどの場合、最適なロケールは「en_US_POSIX」です。

なぜなら、

「en_US_POSIX」は時間によって変化しない(将来、米国が日付のフォーマット方法を変更した場合、「en_US」は新しい動作を反映するように変更されますが、「en_US_POSIX」は変更されない)し、マシン間でも同じです(「en_US_POSIX」は iPhone OS 上でも Mac OS X 上でも他のプラットフォーム上でも同じように機能します)。

参考リンク http://stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-with-the-nsdateformatter-locale-feature http://developer.apple.com/library/ios/#qa/qa1480/_index.html

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。