DataFormatter.date(来自:“”)return 错误的值(- 1 天)Swift
DataFormatter.date(from: " ") return wrong value (- 1 day) Swift
我对 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"
我知道这是错误的时区,但是如果将日期转换为字符串工作正常,如何设置我的时区以从字符串转换日期
要设置 timeZone
属性 你需要提供一个 NSTimeZone
实例。例如,您可以创建一个:
• NSTimeZone(名称:"Pacific Daylight Time")
• NSTimeZone(缩写:"PST")
• NSTimeZone(forSecondsFromGMT: 3600)
记住使用时区名称而不是城市名称。
试试这个
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"
我对 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"
我知道这是错误的时区,但是如果将日期转换为字符串工作正常,如何设置我的时区以从字符串转换日期
要设置 timeZone
属性 你需要提供一个 NSTimeZone
实例。例如,您可以创建一个:
• NSTimeZone(名称:"Pacific Daylight Time") • NSTimeZone(缩写:"PST") • NSTimeZone(forSecondsFromGMT: 3600)
记住使用时区名称而不是城市名称。
试试这个
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"