时间戳是从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
}