首页 > 解决方案 > 如何在 Swift 中使用 DateFormatter 从欧洲时间获取日期

问题描述

我试着约个约会,但我只有时间。现在,我不在乎年、月或日。重要的是时间。

我的输入格式为“hh:mm:ss”(即欧洲时间格式)。

问题是 12:59:59 以上的任何时间都不起作用!

如何从 12:59:59 以上的时间获取日期????

我的代码如下所示:

import UIKit

let str = "17:02:09"

let mydateFormatter = DateFormatter()
mydateFormatter.dateFormat = "hh:mm:ss"
let timezone = TimeZone(abbreviation: "CEST") ?? TimeZone.current
mydateFormatter.timeZone = timezone
mydateFormatter.locale = Locale(identifier: "de_DE") as Locale?

let date1 = mydateFormatter.date(from: str)

print(date1?.description ?? "no date available")

输出: 没有可用的日期

如果我将 str 的小时设置设置为低于或等于 12,那么它可以工作。

例如,如果我设置 str = "12:02:09",我会得到输出:1999-12-31 23:02:09 +0000

例如,如果我设置 str = "10:02:09,我得到输出:2000-01-01 09:02:09 +0000

例如,如果我设置 str = "13:02:09,我得到输出:没有可用的日期

如何从 12:59:59 以上的时间获取日期????

理想情况下,如何获得与 input-time 匹配时间的日期?

标签: swiftdatetimetimezonedateformatter

解决方案


推荐阅读