当前日期的 NSDate 不同?
NSDate for current date is different?
当我注意到一些对我来说很有趣的事情时,我正试图找到下一个约会对象。当我做
let date = NSDate()
let calender = NSCalendar.current
let components = calender.dateComponents([.year, .month, .day], from: date as Date)
dateLabel.text = "\(components.month!)/\(components.day!)/\(components.year!)"
我得到了我想要的日期,这是当前日期。
然而,当我这样做时
@IBAction func nextDate(_ sender: UIButton) {
var oneDayfromNow: NSDate {
return NSCalendar.current.date(byAdding: .day, value: 1, to: NSDate() as Date)! as NSDate
}
print("Current Date: \(calender)")
print(oneDayfromNow)
}
在我打印的当前日期上,我实际上得到了下一个日期的日期,而我的 oneDayfromNow 变量是从现在起 2 天后的日期。所以简而言之,我的两个街区的当前日期不同。
谁能给我解释一下这是为什么?
谢谢
你知道我以前也认识类似的东西。我所有的 Date
值总是提前 8 小时(我住在北加州)。
查看名为 "ISO 8601"
的内容
我不知道您是否熟悉祖鲁时间或现在称为 UTC(我认为是世界时间坐标)的时间,但这是忽略时区的世界时间。
您可能仍然得到正确的日期和时间,它们只是用 UTC 反映出来。
这里引用苹果开发者网站关于 NSDate,
NSDate objects encapsulate a single point in time, independent of any
particular calendrical system or time zone. Date objects are
immutable, representing an invariant time interval relative to an
absolute reference date (00:00:00 UTC on 1 January 2001).
因此,这意味着它不指示任何特定区域的时间,而是表示某个特定时间的不透明对象。 NSDateFormatter 负责格式化日期并将其表示为您想要的时区。
当我注意到一些对我来说很有趣的事情时,我正试图找到下一个约会对象。当我做
let date = NSDate()
let calender = NSCalendar.current
let components = calender.dateComponents([.year, .month, .day], from: date as Date)
dateLabel.text = "\(components.month!)/\(components.day!)/\(components.year!)"
我得到了我想要的日期,这是当前日期。
然而,当我这样做时
@IBAction func nextDate(_ sender: UIButton) {
var oneDayfromNow: NSDate {
return NSCalendar.current.date(byAdding: .day, value: 1, to: NSDate() as Date)! as NSDate
}
print("Current Date: \(calender)")
print(oneDayfromNow)
}
在我打印的当前日期上,我实际上得到了下一个日期的日期,而我的 oneDayfromNow 变量是从现在起 2 天后的日期。所以简而言之,我的两个街区的当前日期不同。
谁能给我解释一下这是为什么?
谢谢
你知道我以前也认识类似的东西。我所有的 Date
值总是提前 8 小时(我住在北加州)。
查看名为 "ISO 8601"
的内容我不知道您是否熟悉祖鲁时间或现在称为 UTC(我认为是世界时间坐标)的时间,但这是忽略时区的世界时间。
您可能仍然得到正确的日期和时间,它们只是用 UTC 反映出来。
这里引用苹果开发者网站关于 NSDate,
NSDate objects encapsulate a single point in time, independent of any particular calendrical system or time zone. Date objects are immutable, representing an invariant time interval relative to an absolute reference date (00:00:00 UTC on 1 January 2001).
因此,这意味着它不指示任何特定区域的时间,而是表示某个特定时间的不透明对象。 NSDateFormatter 负责格式化日期并将其表示为您想要的时区。