Swift Date时区问题处理

//获取当前系统的时间

    static func getCurrentSystemDate() -> Date{
        let date = Date() // 获得时间对象
        let zone = NSTimeZone.system // 获得系统的时区
        let time = zone.secondsFromGMT(for: date)// 以秒为单位返回当前时间与系统格林尼治时间的差
        return date.addingTimeInterval(TimeInterval(time))// 然后把差的时间加上,就是当前系统准确的时间
    }

//根据字符串获取当前时区的时间

    static func date(_ date: String?, dateFormat: String = "yyyy-MM-dd") -> Date? {
        guard let date = date else {
            return nil
        }
        let dateformatter = DateFormatter()
        dateformatter.timeZone = TimeZone.init(secondsFromGMT: 0)
        dateformatter.dateFormat = dateFormat
        return dateformatter.date(from: date)
    }

调用:

print(Date.getCurrectSystemDate())
print(Date.date("2021-12-12"))

The Result:


image.png

你可能感兴趣的:(Swift Date时区问题处理)