繁体   English   中英

在Swift中使用NSDateFormatter时我得到零

[英]I get nil when using NSDateFormatter in swift

这是我的代码:

println(myStringDate)    // 2015-02-26T17:46:34.000Z
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-DDTHH:mm:ss.sssZ"
let myDate = dateFormatter.dateFromString(myStringDate)
println(myDate)        // nil

为什么为零? 我究竟做错了什么 ?

您的问题是如何设置日期格式。 因为您的字符串中有一个T ,所以您需要“转义”它并说,它不应该影响日期的格式。

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

就像您看到的一样,我将sss更改为SSS (代表毫秒),还将YYYY更改为小写yyyy ,与DD相同。 在Dateformat字符串中使用大写和小写字母时,必须非常小心。

检查注释中的@HotLicks链接,该链接很好地概述了dateformat的用法。

我知道已经很晚了,但是

dateFormatter.dateFormat = "YYYY-MM-DD'T'HH:mm:ss.sss'Z'"

应该

dateFormatter.dateFormat = "YYYY-MM-DD'T'HH:mm:ss.SSS'Z'"

因为,

1)

ss - seconds
SSS - fractional second

sss != SSS

2)

  T -> 'T'; S -> 'S'

不错的教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM