在游乐场,我正在测试一些代码。
如果我输入
NSDate()
然后我得到" 2014年11月28日,下午7:56"
但是,如果我输入
var dateString: String = "\(NSDate())"
然后我得到" 2014-11-29 01:56:45 + 0000"
为什么字符串中的默认时间与简单的NSDate()声明不同?
答案 0 :(得分:1)
在游乐场,我正在测试一些代码。
如果我输入
NSDate()然后我得到" 2014年11月28日,下午7:56"
这是您当地的时间,但您无法将时区存储到NSDate对象中。
但是,如果我输入
var dateString:String ="(NSDate())"然后我得到" 2014-11-29 01:56:45 + 0000"
这是格林威治标准时间,以及它如何存储到您的NSDate
let dateString = "\(Date())"
与:
相同let dateString = Date().description
如果您想知道日期的当地时间,您可以按照以下步骤操作:
编辑/更新Swift 3或更高版本:
extension Formatter {
static let localTimestamp: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = .full
return dateFormatter
}()
}
extension Date {
var localTimestamp: String {
return Formatter.localTimestamp.string(from: self)
}
}
Date().localTimestamp // "6:40:19 PM Brasilia Standard Time"