NSDateFormatter 不适用于月份
NSDateFormatter does not work with the months
我正在操作 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
}
感谢您的帮助
看
您弄乱了格式字符串。这将起作用:
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
对象。创建一个实例,将其存储在某处并在需要时使用它。
我正在操作 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
}
感谢您的帮助
看
您弄乱了格式字符串。这将起作用:
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
对象。创建一个实例,将其存储在某处并在需要时使用它。