我正在尝试使用Date()函数转换javascript代码生成当前日期的日期。但是当我把它打印出来时,我就是零。
我的代码:
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 日期=>打印没有 str仅用于测试和完美运行。
有人看到代码中有任何缺陷吗?
答案 0 :(得分:15)
str和date2两个日期格式不同。 str格式为“yyyy-MM-dd'T'HH:mm:ssZ”,而date2格式为“yyyy-MM-dd'T'HH:mm:ss.SSSZ”。
let date2 = "2015-05-15T21:58:00.066Z"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let date = dateFormatter.dateFromString(date2) {
println(date) // "2015-05-15 21:58:00 +0000"
}
答案 1 :(得分:1)
每 documentation 使用 ISO8601DateFormatter
在 macOS 10.12 及更高版本或 iOS 10 及更高版本中,使用 使用 ISO 8601 日期时的 ISO8601DateFormatter 类 表示。
import Foundation
let isoStr = "2020-02-18T11:40:01.000Z"
let isoDateFormatter = ISO8601DateFormatter()
isoDateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
isoDateFormatter.formatOptions = [
.withFullDate,
.withFullTime,
.withDashSeparatorInDate,
.withFractionalSeconds]
if let isoDateFormatted = isoDateFormatter.date(from: isoStr) {
print(isoDateFormatted)
}
答案 2 :(得分:0)
快速4 +
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let str = "2013-07-21T19:32:00Z"
if let date = dateFormatter.date(from: str) {
print(date)
}
输出: 2013-07-21 19:32:00 +0000