我怎样才能格式化日期
How can I format date
我得到的日期格式类似于 2015-07-15 17:12:00 +0000
,但我想将其显示为 2015 年 7 月 15 日。
我该怎么做?
代码:
func formatDate(date: String) -> String {
if date != "" {
var dateString = date
dateString = dateString.substringToIndex(advance(minElement(indices(dateString)), 19))
dateString = dateString.stringByReplacingOccurrencesOfString("", withString: " ")
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
var dateStr = dateFormatter.dateFromString(dateString)
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
var date = dateFormatter.stringFromDate(dateStr!)
return date
}
else {
return ""
}
}
您从字符串到日期的初始转换失败。试试这个:
func formatDate(dateString: String) -> String {
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzzz"
if let date = formatter.dateFromString(dateString) {
formatter.dateStyle = .MediumStyle
return formatter.stringFromDate(date)
} else {
return "Invalid dateString"
}
}
println(formatDate("2015-07-15 17:12:00 +0000"))
NSDateformatter 首先将类似 sql 的日期字符串转换为 NSDate,然后再转换回具有特定格式的字符串
func formatDate(dateString: String) -> String {
if !dateString.isEmpty {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
if let date = dateFormatter.dateFromString(dateString) {
dateFormatter.dateFormat = "MMM dd yyyy"
return dateFormatter.stringFromDate(date)
}
}
return ""
}
formatDate("2015-07-15 17:12:00 +0000") // Jul 15 2015
您输入的 dateFormatter 字符串有点不对 - 它不包括时区并且使用了错误的小时模式。下面工作,最后输出
Jul 15 2015
let dateStr = "2015-07-15 17:12:00 +0000"
var dateFormatterIn = NSDateFormatter()
dateFormatterIn.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
let date = dateFormatterIn.dateFromString(dateStr)
let dateFormatterOut = NSDateFormatter()
dateFormatterOut.dateFormat = "MMM dd yyyy"
print(dateFormatterOut.stringFromDate(date!))
要获得正确的日期字符串,请查看 unicode docs
我得到的日期格式类似于 2015-07-15 17:12:00 +0000
,但我想将其显示为 2015 年 7 月 15 日。
我该怎么做?
代码:
func formatDate(date: String) -> String {
if date != "" {
var dateString = date
dateString = dateString.substringToIndex(advance(minElement(indices(dateString)), 19))
dateString = dateString.stringByReplacingOccurrencesOfString("", withString: " ")
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
var dateStr = dateFormatter.dateFromString(dateString)
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
var date = dateFormatter.stringFromDate(dateStr!)
return date
}
else {
return ""
}
}
您从字符串到日期的初始转换失败。试试这个:
func formatDate(dateString: String) -> String {
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzzz"
if let date = formatter.dateFromString(dateString) {
formatter.dateStyle = .MediumStyle
return formatter.stringFromDate(date)
} else {
return "Invalid dateString"
}
}
println(formatDate("2015-07-15 17:12:00 +0000"))
NSDateformatter 首先将类似 sql 的日期字符串转换为 NSDate,然后再转换回具有特定格式的字符串
func formatDate(dateString: String) -> String {
if !dateString.isEmpty {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
if let date = dateFormatter.dateFromString(dateString) {
dateFormatter.dateFormat = "MMM dd yyyy"
return dateFormatter.stringFromDate(date)
}
}
return ""
}
formatDate("2015-07-15 17:12:00 +0000") // Jul 15 2015
您输入的 dateFormatter 字符串有点不对 - 它不包括时区并且使用了错误的小时模式。下面工作,最后输出
Jul 15 2015
let dateStr = "2015-07-15 17:12:00 +0000"
var dateFormatterIn = NSDateFormatter()
dateFormatterIn.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
let date = dateFormatterIn.dateFromString(dateStr)
let dateFormatterOut = NSDateFormatter()
dateFormatterOut.dateFormat = "MMM dd yyyy"
print(dateFormatterOut.stringFromDate(date!))
要获得正确的日期字符串,请查看 unicode docs