使用 UTC 时区的字符串
String to date with UTC timezone
我正在与 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
对象没有任何固有的语言环境/时区。它只是代表一个时刻。如果您想在特定 locale/time 区域中将 Date
视为字符串,则必须使用日期格式化程序。或者有 descriptionWithLocale
。如果您使用 print
,它将以 UTC 格式打印 Date
实例的调试说明。
我正在与 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
对象没有任何固有的语言环境/时区。它只是代表一个时刻。如果您想在特定 locale/time 区域中将 Date
视为字符串,则必须使用日期格式化程序。或者有 descriptionWithLocale
。如果您使用 print
,它将以 UTC 格式打印 Date
实例的调试说明。