我必须根据设备区域设置格式化日期字符串(UTC格式)。例如在印度它应显示为08/09/2017 12.23,在美国它应显示为09/08/2017 12.23,根据不同的区域设置,它应相应地显示日期格式。
答案 0 :(得分:8)
最好的方法是不设置dateFormat
,而是设置dateStyle
和timeStyle
。
let formatter = DateFormatter()
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateStyle = .medium
formatter.timeStyle = .medium
let string = formatter.string(from: Date())
如果这些样式都不正确,那么请继续使用dateFormat
,而不是使用字符串文字,使用setLocalizedDateFormatFromTemplate(_:)
设置dateFormat
。
let formatter = DateFormatter()
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.setLocalizedDateFormatFromTemplate("ddMMyyyy HH:mm")
let string = formatter.string(from: Date())
对美国用户显示09/08/2017 19:42
,为英国用户显示08/09/2017 19:42
,为德国用户显示08.09.2017 19:42