let _24 = (NSDateFormatter.dateFormatFromTemplate("HH", options: 0, locale: .currentLocale())!.rangeOfString("a") == nil)
つらい。
どうやら NSLocale.currentLocale()
には24時間表記かどうかの情報が含まれているっぽいのだが、APIが生えていない。
日本語設定の時に、12時間表示か24時間表示かを取得して、
16:32
と 4:32 PM
を切り替えたいだけなのに。
16:32
と 午後4:32
なら簡単なのになぁ。
NSDateFormatter.dateFormatFromTemplate("HH:mm", options: 0, locale: .currentLocale())
で取っちゃうと、
"aK:mm"
になるから、PM4:32
になっちゃう。
結局こう。
let locale = NSLocale(localeIdentifier: "en_US")
formatter.locale = locale
let _24 = (NSDateFormatter.dateFormatFromTemplate("HH", options: 0, locale: .currentLocale())!.rangeOfString("a") == nil)
formatter.dateFormat = _24 ? "H:mm" : "K:mm a"
なんかかっこ悪いなぁ。