一、時間戳是什麼?
時間戳是指從某個固定時間點開始到現在的秒數。在計算機中,時間戳通常是一個整數,可以用來表示一段時間。常見的時間戳有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/zh-tw/n/206356.html