Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 从字符串到日期的时间转换:12变为00_Swift_Time_Time Format - Fatal编程技术网

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

Swift 从字符串到日期的时间转换:12变为00,swift,time,time-format,Swift,Time,Time Format,我正在将时间保存到Firebase,然后允许用户重新加载保存的时间 当我从服务器中提取数据(作为字符串),然后将时间转换回日期类型时,它会从12:00(中午)更改为00:00(午夜) 我可以看到Firebase实时数据库上的数据,它清楚地显示12:00而不是午夜 下面是我用来从实时数据库下载的字典中提取数据的代码 if let gtt1hourLabTime = patientDataDictionary["1 Hour lab Time"] as? String { if let

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

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

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

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

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

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

simpleDateFormat.dateFormat = "HH:mm"

您需要使用
HH:mm
HH表示00-23<代码>hh是从凌晨1点到下午12点的格式