ios - 转换后获取错误的日期格式

标签 ios swift nsdate nsdateformatter

我从API获取此日期的字符串格式:“2020-01-02T00:00:00”。

现在,我想将此日期转换为Date格式。这就是我为此所做的...

var utcTime = "\(dic["Due_Date"]!)" //Printing `utcTime` gives "2020-01-02T00:00:00"
self.dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
self.dateFormatter.locale = Locale(identifier: "en_US")
if let date = dateFormatter.date(from:utcTime) {
  self.scheduledDate = date //HERE I GET THE DATE AS 2020-01-01 18:30:00 UTC
}

字符串格式的接收日期为“2020-01-02T00:00:00”。但是,当我将其转换为Date格式时,我得到的日期是2020-01-01 18:30:00 UTC,这是不正确的。

最佳答案

您必须将时区设置为UTC(世界标准时间)

var utcTime = "2020-01-02T00:00:00" //Printing `utcTime` gives "2020-01-02T00:00:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.locale = Locale(identifier: "en_US")
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
if let date = dateFormatter.date(from:utcTime) {
  print(date)  //HERE I GET THE DATE AS 2020-01-01 18:30:00 UTC
}

输出:-
enter image description here

关于ios - 转换后获取错误的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59980439/

相关文章:

ios - UITableViewCell 和标签不显示文本

swift - 将图像存储在 swift 的 Core Data 中

swift - 在协议(protocol)定义中包含功能与仅在扩展中定义它的原因?

ios - 在 Storyboard中更改 View 时保存 NSDate 数据 - iOS

cocoa - NSDate 比较上不兼容的指针类型

ios - 如何使iOS 8小部件显示在锁定屏幕上

ios - 提供的 Assets 名称无效 : '(null)'

ios - 使用 uiscrollview 进行图像缩放无法正常工作。 swift

iOS表格 View 单元格图片下载

iphone - 使用本地时区将 unix 时间戳转换为 NSdate