使用 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 实例的调试说明。