根据设备区域设置格式化日期字符串
问题描述:
我必须根据设备区域设置格式化日期字符串(UTC格式)。例如在印度,它应该显示为08/09/2017 12.23,在美国它应该显示为09/08/2017 12.23,根据不同的地区设置,它应该显示相应的日期格式。根据设备区域设置格式化日期字符串
答
最好的方法是不要设置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
德国用户