每次格式错误时,dateFromString都返回nil?

时间:2015-04-20 14:40:08

标签: swift date

我正在尝试使用字符串方法中的日期,如下所示:

var dateNow = self.tags![indexPath.row].date!
let timeZone = NSTimeZone(name: "UTC")
let df = NSDateFormatter()
df.locale = NSLocale.currentLocale()
df.timeZone = timeZone
df.dateFormat = "yyyy-MM-ddThh:mm"
let date: NSDate = df.dateFromString(dateNow)! //this is nil and throws an unwrapping error

日期格式如下

dateNow String  "2015-04-19T17:00:42.205Z"  

我猜可能格式错误但我不知道如何编写df.dateFormat

2 个答案:

答案 0 :(得分:5)

你只需格式化如下:

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

答案 1 :(得分:-1)

另一种获得nil的方法是,如果你使用hh,你的工作时间是24小时制,那么> 12,在这种情况下,你需要HH(或H,用于零填充)。

即:

格式: yyyy-MM-DD hh:mm:ss ,字符串:“2016-03-01 13:42:17”将返回nil。

格式: yyyy-MM-DD HH:mm:ss ,字符串:“2016-03-01 13:42:17”将返回您期望的日期。