在 Swift 中将字符串格式化为 NSdate

Format string to NSdate in Swift

我的字符串是 = "2015-08-26 14:21:40.557"

我的代码:

var dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:Z"

        var date = dateFormatter.dateFromString(creationDateStr as String )

我得到一个零日期,正确的格式是什么?

格式必须与您输入的字符串完全匹配,因此

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"

会完成任务的。

请注意,Z 用于时区,而不是(毫秒)秒。

HH是24小时; hh 只允许 01 到 12 之间的值,通常与 a 配对以表示 AM/PM。

var str = "2015-08-26 14:21:40.557"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"
var date = dateFormatter.dateFromString(str)
        var dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"

        var date = dateFormatter.dateFromString(creationDateStr as String )

如果您的字符串不是这种日期格式,将 return 为 nil。 (例如,“5/26/2015”将 return nil 但“2015-05-26 12:30:00.123”将 return 一个 nsdate)

您尝试解析的字符串的格式不正确。

正确的格式是:

"yyyy-MM-dd HH:mm:ss.SSS"

解析不正确的格式将return一个零值。