我有一个日期:2019-07-18 00:30:32 GMT + 10:00。
我想将字符串转换为日期,但日期输入错误。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZZ"
dateFormatter.timeZone = NSTimeZone.local;
dateFormatter.locale = NSLocale.current;
let date = dateFormatter.date(from:isoDate)!
它给出了错误的日期:“ 2019年7月17日,晚上8:00”
答案 0 :(得分:0)
使用固定格式的日期(例如RFC 3339)时,请设置 dateFormat属性指定格式字符串。对于大多数固定 格式,还应该将locale属性设置为POSIX语言环境 (“ en_US_POSIX”),并将timeZone属性设置为UTC。
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
参考:Apple
答案 1 :(得分:-1)
使用此命令:https://momentjs.com/timezone/
var newYork = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london = newYork.clone().tz("Europe/London");
newYork.format(); // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format(); // 2014-06-01T17:00:00+01:00