【问题标题】:Swift using NSLocale for date formatter - need to set country automaticallySwift 使用 NSLocale 作为日期格式化程序 - 需要自动设置国家
【发布时间】:2016-08-10 14:07:48
【问题描述】:

我找到了下面的示例,它似乎在 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")
}

【问题讨论】:

  • 这个link 可能对你有帮助。

标签: iphone swift nsdateformatter nslocale


【解决方案1】:

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

【讨论】:

  • 例如,如果我所在国家/地区的时间是 18:14:32,则应显示为 21:14:32
  • 为此,您需要更多地研究 NSDate 以及如何处理时区。
【解决方案2】:

试试下面的代码。它对我有用。

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

根据苹果的Formatting Data Using the Locale Settings

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-25
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多