2017-09-08 86 views
1

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

回答

5

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

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:4208/09/2017 19:42对于英国用户,08.09.2017 19:42德国用户

相关问题