我有一个日期“2014-07-02 20:57:38 +0000”,我想将它的格式设置为“今天晚上 8:57”。 我希望如果一个字符串是昨天,则将其显示为“昨天上午 9:00”。如果既不是今天也不是昨天,只需显示实际日期,例如“27/6 at 7:53 pm”。
我能够使用下面的代码获取格式为“8:57 AM”的时间。
var formatter : NSDateFormatter = NSDateFormatter()
formatter.dateFormat = "h:mm a"
// message.createdAt is the date
let dateString = formatter.stringFromDate(message.createdAt)
println(dateString)
//output = 8:57 AM
但是,当我使用下面的代码时,它返回一个空字符串。
var formatter : NSDateFormatter = NSDateFormatter()
formatter.dateFormat = "h:mm a"
formatter.doesRelativeDateFormatting = true //<-- This doesn't work
let dateString = formatter.stringFromDate(message.createdAt)
println(dateString)
//output = (nothing, its a blank string)
如何在 Swift 中使它工作并显示“今天”或“昨天”?
最佳答案
它为空的原因是您的日期格式只有时间部分。结合 .doesRelativeDateFormatting
给你空字符串。如果您想要自定义时间格式,我认为您需要单独的日期和时间格式化程序:
let now = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .MediumStyle
dateFormatter.doesRelativeDateFormatting = true
let timeFormatter = NSDateFormatter()
timeFormatter.dateFormat = "h:mm a"
let time = "\(dateFormatter.stringFromDate(now)), \(timeFormatter.stringFromDate(now))"
println(time) // prints "Today, 5:10 PM"
关于ios - 如何用 "Today at xx:xx pm", "Yesterday at xx:xx am"之类的人类语言显示日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24540984/