根据设备区域设置格式化日期字符串

War*_*ior 4 localization nsdate ios swift3

我必须根据设备区域设置格式化日期字符串(UTC格式).例如在印度它应显示为08/09/2017 12.23,在美国它应显示为09/08/2017 12.23,根据不同的区域设置,它应相应地显示日期格式.

Rob*_*Rob 10

最好的方法是不设置dateFormat,而是设置dateStyletimeStyle.

let formatter = DateFormatter()
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateStyle = .medium
formatter.timeStyle = .medium
let string = formatter.string(from: Date())
Run Code Online (Sandbox Code Playgroud)

如果没有这些样式是相当正确的,那么,继续使用dateFormat,但不是一个字符串,设置dateFormat使用setLocalizedDateFormatFromTemplate(_:).

let formatter = DateFormatter()
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.setLocalizedDateFormatFromTemplate("ddMMyyyy HH:mm")
let string = formatter.string(from: Date())
Run Code Online (Sandbox Code Playgroud)

09/08/2017 19:42表示美国用户,08/09/2017 19:42英国用户和08.09.2017 19:42德国用户