从字符串中取回日期
即时通讯处理日期,我遇到问题从字符串中恢复日期,我在这里简化了我的问题:
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”(???)
问题在于Y
是weekOfYear
。 你必须使用"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)")