我正在尝试解析发送到服务器的日期。
现在从服务器收到的日期为" 2016-05-10T22:34:00.000Z"
这是我的代码,用于从上述日期字符串中获取格式化日期:
let format="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let dateFmt = NSDateFormatter()
dateFmt.dateFormat = format
let newreadableDate = dateFmt.dateFromString(dateString)
print(newreadableDate!)
dateFmt.dateFormat = "MMM dd hh:mm a"
print("Formatted date is : \(dateFmt.stringFromDate(newreadableDate!))")
print语句打印出以下结果: 5月11日04:04 AM
上述结果完全错误。我应该回到我从服务器收到但具有不同格式的相同日期。
但newReadableDate变量会输出正确的日期: 2016-05-10 22:34:00 +0000
但在我格式化之后,它给了我错误的约会。
以上代码有什么问题?
答案 0 :(得分:0)
你的代码很好。输出是正确的。您解析的日期字符串是UTC时间。但是您在当地时间记录最终结果。您必须住在比UTC早5.5小时的时区。
日期字符串中的Z
代表UTC时间的“Zulu”时间。因此日期格式化程序将字符串解析为UTC时间的时间。
然后选择打印生成的NSDate
。默认情况下,NSDateFormatter
会在区域设置时生成NSDate
的字符串。
2016年5月10日22:34 UTC时间与您当地(+0530)时区2016年5月11日上午04:04完全相同。