我需要检查当前日期是否在夏令时期间。在伪代码中会是这样的:
let date = NSDate()
if date.isDaylightSavingsTime {
print("Success")
}
我无法在互联网上的任何地方找到解决方案。
答案 0 :(得分:17)
仅NSDate
表示绝对时间点。
确定日期是否在夏令时期间
它需要在时区的上下文中进行解释。
因此,您会在NSTimeZone
课程中找到that method而不是this
在NSDate
课程中。例如:
let date = NSDate()
let tz = NSTimeZone.localTimeZone()
if tz.isDaylightSavingTimeForDate(date) {
}
Swift 3/4的更新:
let date = Date()
let tz = TimeZone.current
if tz.isDaylightSavingTime(for: date) {
print("Summertime, and the livin' is easy ... ")
}
答案 1 :(得分:1)
Swift 4.0或更高版本
您可以按时区identifier或abbreviation两种方式检查日期isDaylightSavingTime。
let timeZone = TimeZone(identifier: "America/New_York")!
if timeZone.isDaylightSavingTime(for: Date()) {
print("Yes, daylight saving time at a given date")
}
let timeZone = TimeZone(abbreviation: "EST")!
if timeZone.isDaylightSavingTime(for: Date()) {
print("Yes, daylight saving time at a given date")
}