我正在尝试转换一个日期,其中 javascript 代码使用 Date() 函数生成当前日期。但当我打印出来时,我得到的是零。
my code:
let date2 = data?[0] as! String
println(date2)
var str = "2013-07-21T19:32:00Z"
var dateFor: NSDateFormatter = NSDateFormatter()
dateFor.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
var Date: NSDate? = dateFor.dateFromString(date2)
println(Date)
date2 => 正在打印 2015-05-15T21:58:00.066Z
日期 => 正在打印 nil
str 仅用于测试并且工作完美。
有人看到代码中有任何缺陷吗?
问题是str
and date2
两者的日期格式不一样。str
格式是"yyyy-MM-dd'T'HH:mm:ssZ"
while date2
格式是"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
。除此之外,您应该始终将 dateFormatter 的区域设置设置为"en_US_POSIX"
解析固定格式日期时:
let date2 = "2015-05-15T21:58:00.066Z"
let dateFormatter = DateFormatter()
dateFormatter.locale = .init(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let date = dateFormatter.date(from: date2) {
print(date) // "2015-05-15 21:58:00 +0000"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)