NSDateFormatter等に特定のlocaleを指定したい場合に、
let formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: "en_US")
みたいにして、(この例だと “en_US” を)指定しますが、この時、文字列で指定するのがなんとなく嫌というか…。
前に、“en_US"ではなくて、 “enUS” みたいにしてしまった事があったので、その教訓も踏まえて、次のようにextension
を書いてみました。
extension NSLocale {
enum Type: String {
case en_US_POSIX
case en_US
case ja_JP
// 必要に応じて追加
}
convenience init(type: Type) {
self.init(localeIdentifier: type.rawValue)
}
}
これで、
let formatter = NSDateFormatter()
formatter.locale = NSLocale(type: .en_US)
のように使うことができます。めでたしめでたし。