我有以下字符串:
let dateString = "2018-04-18T04:54:00-04:00"
我通过执行以下操作通过 ISO8601DateForamtter
初始化 Date
:
let formatter = ISO8601DateFormatter()
let date = formatter.date(from: dateString)
如果我打印日期,我会得到以下结果:
Apr 18, 2018 at 1:54am
格式化程序会自动将时间转换为我的本地时间。如何防止占用我的时区?例如,我希望 Date
对象显示以下内容:
Apr 18, 2018 at 4:54am
最佳答案
对于 ISO8601
,2018-04-18T04:54:00-04:00
表示 2018-04-18 04:54:00
> GMT -4h
。要打印原始字符串中的时间,您需要创建一个日期格式化程序,其特定时区为 -4
。
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone(secondsFromGMT: -4 * 60 * 60)
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
print(dateFormatter.string(from: date))
你将会得到
2018-04-17 04:54:00
仅供引用,我正在添加 ISO8601 的链接
关于ios - 防止日期本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49887879/