-1

我有问题DateFormatter。我设置了当前时区formatter.timezone = Calendar.current.timezone,但是当我从当前日期转换时, Date()我得到了 - 1 天的值

我的代码

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
formatter.calendar = Calendar(identifier: .iso8601)
formatter.timeZone = Calendar.current.timeZone
formatter.locale = Calendar.current.locale
let date = Date()
let dateString = formatter.string(from: date) // "2018-04-24"
viewModel.currentDate = formatter.date(from: dateString)!
print("\(viewModel.currentDate)") // "2018-04-23"

我知道这是不好的时区,但是如果将日期转换为字符串工作正常,如何设置我的时区以从字符串转换日期

4

2 回答 2

0

要设置timeZone属性,您需要提供一个NSTimeZone实例。例如,您可以创建一个:

• NSTimeZone(名称:“太平洋夏令时间”) • NSTimeZone(缩写:“PST”) • NSTimeZone(forSecondsFromGMT:3600)

请记住使用时区名称而不是城市名称。

于 2018-04-24T16:17:28.417 回答
0

试试这个

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
formatter.timeZone = TimeZone(abbreviation: "GMT+0:00")
let date = Date()
let dateString = formatter.string(from: date) // "2018-04-24"
print("\(formatter.string(from: formatter.date(from: dateString)!))") // "2018-04-23"
于 2018-04-24T16:18:48.357 回答