从字符串中取回日期

时间:2015-05-25 15:00:51

标签: ios swift nsdateformatter

我正在处理日期,而且我在从字符串中找回日期时出现问题,我在这里简化了我的问题:

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和#34; (???)

3 个答案:

答案 0 :(得分:3)

问题在于Y适用于weekOfYear。您必须使用"dd-MM-yyyy"

答案 1 :(得分:2)

你应该使用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在我的时区

答案 2 :(得分:0)

您应该更改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)")