我试图从unix时间戳获取当前日期和时间,但它一直给我错误的日期这是我现在的代码
func getDateFromStamp(timeInterval:Int) -> String{
let date = NSDate(timeIntervalSince1970: TimeInterval(timeInterval))
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE, MMM d, h:mm a"
let dateString = dateFormatter.string(from: date as Date)
return dateString
}
答案 0 :(得分:2)
通常unix时间戳以毫秒为单位,但Date使用秒。您可能需要将时间戳除以1000.
答案 1 :(得分:0)
可能的错误:
我尝试使用毫秒而不是秒。 timeIntervalSince1970: TimeInterval
使用秒。事先将timeInterval
除以1000。
或者您尚未设置TimeZone。
请勿忘记使用Date()
代替NSDate()
这取决于您的结果和输入参数。
修改强>
要更改时区,请使用以下代码:
dateFormatter.timeZone = TimeZone(abbreviation: "GMT+01:00")
答案 2 :(得分:0)
对于Swift 4:
步骤:-1 转换为日期:
sentMailRequest = {
method: 'POST',
url: 'https://www.googleapis.com/gmail/v1/users/me/messages/send',
body: {
raw: Buffer.from(mailString).toString('base64')
},
};
步骤:-2 转换为适当的时区:
let timestamp = "Your TimeStamp here"
var dateFromTimeStamp = Date(timeIntervalSince1970: timestamp as! TimeInterval / 1000)
希望这对你有所帮助。