[Xcode] iOS 9以降、NSDateFormatter12時間表示での不具合

12時間表示時のバグ(?)

NSDateFormatter

日本語&12時間表示時、『HH:mm』で変換させるとバグる。

以下のような文字変換で、

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"HH:mm"];
    NSLog(@"『%@』",[dateFormatter stringFromDate:[NSDate date]]);

午後6時の場合、24時間表示時では、『18:00』。
12時間表示では『18午後6:00』と、両方表示される。

iOS 8以前では、『HH:mm』は『午後6:00』。iOS 9以降で変わった。

ただ、『HH:m』『H:mm』『H:m』では期待通り。
『HH時mm分』などもOK。よく使われそうな『HH:mm』だけおかしい(ーー;

HHは24時間表示用という位置付けのようだけど、12時間表示では、午前と午後(英語ではAM or PM)が自動付加されるので利用しやすい。

Date Formatters

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする