从字符串中取回日期

即时通讯处理日期,我遇到问题从字符串中恢复日期,我在这里简化了我的问题:

let date = NSDate() let formatter = NSDateFormatter() formatter.dateFormat = "dd-MM-YYYY" formatter.stringFromDate(date) formatter.dateFromString(formatter.stringFromDate(date)) 

输出是:“25-05-2015”(这很好)“2014年12月21日,上午12:00”(???)

问题在于YweekOfYear 。 你必须使用"dd-MM-yyyy"

你应该使用yyyy一年,而不是YYYY (具有不同的含义)

 let date = NSDate() let formatter = NSDateFormatter() formatter.dateFormat = "dd-MM-yyyy" let s = formatter.stringFromDate(date) // "25-05-2015" let d = formatter.dateFromString(s) // "2015-05-24 22:00:00 UTC" (*) 

(*)现在是22:00因为我在+0200时区,所以这个结果实际上是2015-05-25 00:00:00在我的时区

您应该更改dateFormat以使其正常工作,YYYY不正确。

 import Foundation let date = NSDate() let formatter = NSDateFormatter() formatter.dateFormat = "dd-MM-YYYY" var firstDate = formatter.stringFromDate(date) formatter.dateFormat = "yyyy-MM-dd hh:mm:ss.SSSSxxx" var secondDate = formatter.dateFromString(formatter.stringFromDate(date)) println("\(firstDate)") println("\(secondDate)")