一、时间戳是什么?
时间戳是指从某个固定时间点开始到现在的秒数。在计算机中,时间戳通常是一个整数,可以用来表示一段时间。常见的时间戳有Unix时间戳和JavaScript时间戳,它们分别以1970年1月1日和1970年1月1日午夜为起始时间。
二、Swift如何获取当前时间戳?
let timestamp = Int(Date().timeIntervalSince1970)
print("当前时间戳为:\(timestamp)")
上述代码中,我们使用了Swift内置的Date类来获取当前时间,并利用timeIntervalSince1970方法将其转换为时间戳。
三、Swift时间戳转日期
在Swift中,我们可以使用DateFormatter将时间戳转换为具体的日期。下面是一个示例代码:
let timestamp = 1630672360
let date = Date(timeIntervalSince1970: TimeInterval(timestamp))
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateString = dateFormatter.string(from: date)
print("时间戳\(timestamp)对应的日期为:\(dateString)")
以上代码中,我们首先将时间戳转换为Date类型,然后设置一个日期格式,最后调用dateFormatter.string(from: date)方法获取日期字符串。
四、Swift日期转时间戳
与时间戳转日期相反,我们同样可以使用DateFormatter将日期字符串转换为时间戳。下面是一个示例代码:
let dateString = "2021-09-03 10:19:20"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date = dateFormatter.date(from: dateString)
let timestamp = Int(date!.timeIntervalSince1970)
print("日期\(dateString)对应的时间戳为:\(timestamp)")
在以上代码中,我们首先设置一个日期格式,然后调用dateFormatter.date(from: dateString)方法将字符串转换为Date类型,最后调用timeIntervalSince1970方法将其转换为时间戳。
五、Swift时间戳转时间差
有时候我们需要将时间戳转换为距离当前时间的时间差,例如“2小时前”、“3天前”等。下面是一个示例代码:
let timestamp = 1630672360
let now = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date = Date(timeIntervalSince1970: TimeInterval(timestamp))
let interval = now.timeIntervalSince(date)
let secondsPerMinute: TimeInterval = 60
let secondsPerHour: TimeInterval = 60 * secondsPerMinute
let secondsPerDay: TimeInterval = 24 * secondsPerHour
let secondsPerWeek: TimeInterval = 7 * secondsPerDay
let secondsPerMonth: TimeInterval = 30 * secondsPerDay
let secondsPerYear: TimeInterval = 365 * secondsPerDay
var timeDiff = ""
if interval >= secondsPerYear {
let years = Int(interval / secondsPerYear)
timeDiff = "\(years)年前"
} else if interval >= secondsPerMonth {
let months = Int(interval / secondsPerMonth)
timeDiff = "\(months)月前"
} else if interval >= secondsPerWeek {
let weeks = Int(interval / secondsPerWeek)
timeDiff = "\(weeks)周前"
} else if interval >= secondsPerDay {
let days = Int(interval / secondsPerDay)
timeDiff = "\(days)天前"
} else if interval >= secondsPerHour {
let hours = Int(interval / secondsPerHour)
timeDiff = "\(hours)小时前"
} else if interval >= secondsPerMinute {
let minutes = Int(interval / secondsPerMinute)
timeDiff = "\(minutes)分钟前"
} else {
timeDiff = "刚刚"
}
print("时间戳\(timestamp)距离当前时间的时间差为:\(timeDiff)")
以上代码中,我们首先获取当前时间,并从时间戳转换出对应的日期。然后计算两者之间的时间差,根据不同的时间差选择不同的时间单位(年、月、周、天、小时、分钟)来表示时间差。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/206356.html