从unix时间戳获取日期和时间

时间:2018-03-28 09:30:41

标签: ios swift nsdateformatter unix-timestamp

我试图从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
}

3 个答案:

答案 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)

希望这对你有所帮助。