【发布时间】:2022-04-19 04:16:12
【问题描述】:
我想将当前时间(UTC)转换为我的本地时区。但我不希望它是字符串,我希望它是日期格式本身。
我写了以下代码:
let currentDate = Date()
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
在那之后,大多数人都这样做了
let dateString = dateFormatter.string(from: now)
没关系,我在本地时区得到了正确的时间,但是是字符串格式的。我想要日期格式。
再次,如果我这样做了
let currentDateInLocal = dateFormatter.date(from: dateString) //converting string to date
我正在获取 UTC 格式的日期。如何以日期格式获取本地时区的日期?
【问题讨论】:
-
如果您通过
print确认currentDateInLocal是什么,请知道Dates 没有关联的时区,当您使用print时,它将始终以UTC 显示.currentDateInLocal只是一个时间点,但您解释该时间点所在的时区是完全独立的。 -
print(currentDateInLocal.description(with: .current)) -
您需要分开两件事:timeZone 适用于日期。 dateFormat 适用于字符串。如果您想对日期进行操作(并且对字符串不感兴趣),请忘记格式,只需转换时区即可。这里描述了一堆方法:stackoverflow.com/questions/38641982/…
-
@thiscommunityistoxic 感谢帮助的人。完成
标签: swift datetime type-conversion