Swift使用NSLocale作为日期格式化程序 - 需要自动设置国家/地区

时间:2016-08-10 14:07:48

标签: iphone swift nsdateformatter nslocale

我找到了下面的例子,它似乎在am-pm模式和24小时模式下工作。

问题是我想根据用户的国家/地区自动设置区域设置标识符。 我没有找到包含国家/地区的列表或自动执行此操作的方法。

任何人都可以帮忙举个例子吗?

let mydate = "2014-10-28T18:14:32"
let formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
if let parsedDateTimeString = formatter.dateFromString(mydate) {
    formatter.stringFromDate(parsedDateTimeString)
    print(parsedDateTimeString)
} else {
    print("Could not parse date")
}

2 个答案:

答案 0 :(得分:0)

这取决于“用户所在国家/地区”的含义。如果您想获取区域设置标识符,则设备当前设置为尝试NSLocale.currentLocale().localeIdentifier

答案 1 :(得分:0)

尝试以下代码。它对我有用。

let dateFormatter = DateFormatter()
dateFormatter.timeStyle = DateFormatter.Style.short
let date = dateFormatter.date(from: time)

根据Apple的Formatting Data Using the Locale Settings