我正在操作Date / String类型的变量,我遇到了问题。
我在输入中收到日期为此格式的字符串(2015-08-24),我希望输出此日期格式(星期六,1月25日)为字符串。
我有这个功能:
private func dateFormatter(s : String) -> String{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-DD"
var date = dateFormatter.dateFromString(s)!
var newDateFormat = NSDateFormatter()
newDateFormat.dateFormat = "EEE, DD MMM"
return newDateFormat.stringFromDate(date)
}
执行:
var d = dateFormatter("2015-08-24")
println(d) //Sat, 24 Jan
这是错误的月份,我不知道为什么。
显示每个步骤时:
private func dateFormatter(s : String) -> String{
println(s) //2015-08-24
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-DD"
var date = dateFormatter.dateFromString(s)!
println(date) //2015-01-23 23:00:00 +0000 //Why day 23 whereas it is 24 in input?
var newDateFormat = NSDateFormatter()
newDateFormat.dateFormat = "EEE, DD MMM"
return newDateFormat.stringFromDate(date) //Sat, 24 Jan
}
感谢您的帮助
Ysee
答案 0 :(得分:2)
你搞砸了格式字符串。这将有效:
private func dateFormatter(s : String) -> String{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.dateFromString(s)!
let newDateFormat = NSDateFormatter()
newDateFormat.dateFormat = "EEE, dd MMM"
return newDateFormat.stringFromDate(date)
}
此外,您不应每次都创建NSDateFormatter
个对象。创建一个实例,将其存储在某个地方并在需要时使用它。