从字符串到日期的时间转换:12 正在变为 00 swift

Time conversion from String to Date: 12 is becoming 00 swift

我正在将时间保存到 Firebase,然后允许用户重新加载保存的时间。

当我从服务器提取数据(作为字符串)然后将时间转换回日期类型时,它从 12:00(中午)变为 00:00(午夜)。

我可以在我的 Firebase 实时数据库上看到数据,它清楚地表明 12:00 而不是午夜。

Firebase Image

这是我用来从我从实时数据库下载的字典中提取数据的代码。

if let gtt1hourLabTime = patientDataDictionary["1 Hour lab Time"] as? String {
      if let realgtt1HourLabTime = timeFormatTool(gtt1hourLabTime) {
                print(realgtt1HourLabTime)
                patientVC.gtt1HourLabTime = realgtt1HourLabTime
       }
}

这是我的时间格式工具:

func timeFormatTool(_ dateStr: String) -> Date? {
        let simpleDateFormat = DateFormatter()
        simpleDateFormat.dateFormat = "hh:mm"

        let date = simpleDateFormat.date(from: dateStr)
        return date
}

打印出来的时间是这样的:

2000-01-01 00:18:00 +0000

因为您使用的格式是 hh:mm,在 11:59 之后格式返回 00:00。如果您想要 24 小时格式,其中包括 12:xx,您只需将日期格式更改为:

simpleDateFormat.dateFormat = "HH:mm"