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"
なんかかっこ悪いなぁ。