从String到Date的时间转换:12变为00 swift

时间:2017-10-18 13:50:27

标签: swift time time-format

我正在为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

1 个答案:

答案 0 :(得分:3)

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

simpleDateFormat.dateFormat = "HH:mm"