28

何が問題なのかわかりませんが、月の名前が "July" ではなく "07" になっています。

dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setLocale:[NSLocale systemLocale]];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];    
[dateFormat setDateFormat:@"MMMM dd, h:mm a"];

私は M、MM、MMM、MMMM を試しましたが、それらはすべて、月名の代わりに数字を与えてくれますが、先頭の 0 の量は異なります。

4

3 に答える 3

54

2 行目の問題であることが判明しましたsetLocalelocale手動で設定されている場合、システムはデフォルトで英語の月名を使用しないと思いますか? 私は英語圏に住んでいますlocaleが、多分それは問題ではありません。

いずれにせよ、ロケールを設定しないと、月名の問題が修正されます。

dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];    
[dateFormat setDateFormat:@"MMMM dd, h:mm a"];
于 2012-08-24T19:38:32.550 に答える
15

問題は形式ではなく、ロケールです。これをチェックしてください:

http://waracle.net/mobile/iphone-nsdateformatter-date-formatting-table/

基本的に「MMMM」はその月のフルネームになります。

于 2012-08-24T19:39:37.463 に答える
8

-systemLocaleここで欲しいものではありません。他のロケールが適合しない場合は、フォールバック ロケールを返します。-currentLocaleユーザーの現在のロケールを取得するために使用します。

また:のメソッドを
使用して、正しい日付形式を取得する必要があります。一部の言語では、日が月の前に来るなど、その逆もあります。NSDateFormatter+dateFormatFromTemplate:options:locale:

于 2012-08-24T19:37:21.200 に答える