Swift有夏令时检查吗?

bkw*_*ero 3 nsdate dst swift

我需要检查当前日期是否在夏令时期间.在伪代码中会是这样的:

let date = NSDate()

if date.isDaylightSavingsTime {

    print("Success")

}
Run Code Online (Sandbox Code Playgroud)

我无法在互联网上的任何地方找到解决方案.

Mar*_*n R 18

一个NSDate单独表示时间的绝对点.要确定日期是否在夏令时期间,需要在时区的上下文中进行解释.

因此,您将在类中找到该方法,NSTimeZone而不是在NSDate类中找到该方法.例:

let date = NSDate()

let tz = NSTimeZone.localTimeZone()
if tz.isDaylightSavingTimeForDate(date) {

}
Run Code Online (Sandbox Code Playgroud)

Swift 3/4更新:

let date = Date()

let tz = TimeZone.current
if tz.isDaylightSavingTime(for: date) {
    print("Summertime, and the livin' is easy ... ")
}
Run Code Online (Sandbox Code Playgroud)