我在Date
上挣扎,我假设是TimeZone
。目前,我从后端得到一个类似"2020-04-07"
的字符串,当我尝试将其转换为日期时,它将变成2020-04-06 22:00:00 +0000
。我在西班牙(UTC + 2),我想这就是为什么它会删除2个小时?
这是我的日期格式:
var dateFormatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.timeZone = TimeZone.current
return dateFormatter
}()
我称它为dateFormatter.date(from: startDateString)
我正在设置当前时区,但似乎忽略了它,或者我错过了什么?
我从这里得到了很多答案,但结果始终相同。
谢谢
Date
对象没有任何固有的语言环境/时区。它只是代表时刻。如果要在特定的语言环境/时区中看到Date
作为字符串,则必须使用日期格式程序。或有descriptionWithLocale
。如果使用print
,它将在UTC中打印Date
实例的调试说明。