Ios 将字符串格式设置为Swift中的NSdate

Ios 将字符串格式设置为Swift中的NSdate,ios,string,swift,nsdate,Ios,String,Swift,Nsdate,我的字符串是=“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 ) 我没有约会,正确的格式是什么 格式必须与输入字符串完全匹配,因此 dateFo

我的字符串是=“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)

如果字符串不是此日期格式,将返回nil。(例如,“5/26/2015”将返回nil,但“2015-05-26 12:30:00.123”将返回nsdate)

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

正确的格式是:

“yyyy-MM-dd HH:MM:ss.SSS”


解析不正确的格式将返回一个nil值。

该字符串是哪个时区?如果您是从数据库或某个web服务获取此信息,有时是GMT/UTC/Zulu。您应该确认时间字符串所在的时区。此外,如果此日期格式用于与某些web服务或类似服务交换,您还应该设置
区域设置
。看看苹果。虽然这个答案可能是正确和有用的,但如果你能解释一下它是如何帮助解决问题的,你会更喜欢这个答案。如果有一个变化(可能是无关的)导致它停止工作,并且用户需要了解它曾经是如何工作的,那么这在将来变得特别有用。
        var dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"

        var date = dateFormatter.dateFromString(creationDateStr as String )