后端为我提供格式为“ 2018-09-07 01:00:00 am”的日期,该日期的时区为UTC。现在,我必须将其转换为本地时区。我正在使用的功能是:
func getLocalDate(dateString: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss a"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
dateFormatter.locale = Locale.current
let dt = dateFormatter.date(from: dateString)
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss aZ"
return dateFormatter.string(from: dt!)
}
使用此方法,日期先转换为UTC,然后转换为本地时区,所以我没有得到想要的结果。如何将该日期的时区设置为UTC,而不进行任何转换?
编辑:我得到的输出是2018-09-07 05:45:00 AM + 0545,但预期的输出是2018-09-07 06:45:00 AM + 0545 < / p>
答案 0 :(得分:0)
12小时制的格式说明符为hh
,而不是24小时制的HH
。
将HH
与am / pm指定符a
结合使用将产生错误的结果。