swift 时间戳记录

2023-07-24  本文已影响0人  静守幸福

时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

无论在世界的哪个地方,我们的时间戳都是一样的;
时间戳结合时区可以判定当前时区的具体时间(有些地方的时区不是固定的,会根据夏令时做调节 此处踩了坑 计算时间相差一个小时)
用系统方法转化成的时间是你的系统时区的时间

记录个特定时区剩余时间方法活动开启按照某个时区的某个时间 计算的剩余时间

/// 剩余时间
    /// - Parameters:
    ///   - deadlineDate: Date
    ///   - startDate: Date
    /// - Returns: 两个时间差的小时数
   func remainTimeInTimeZone(_ deadlineDate: Date, _ startDate: Date) -> Int {
        // America/Los_Angeles 换成自己的
        var customCalendar = Calendar(identifier: Calendar.Identifier.gregorian)
        customCalendar.timeZone = TimeZone(identifier: "America/Los_Angeles"
        customCalendar.locale = Locale(identifier: "America/Los_Angeles")
        
        guard let minute = customCalendar.dateComponents([.minute], from: startDate, to: deadlineDate).minute else {
            return 0
        }
        
        return minute % 60 == 0 ? minute / 60 : minute / 60 + 1
    }
上一篇下一篇

猜你喜欢

热点阅读