毫秒至完整日期返回我所在时区的错误日期

时间:2018-08-02 07:51:43

标签: swift date time formatter

我开发了一个应用,该应用必须显示当前日期和时间,而不是从设备读取,而是从http-get服务读取

我从服务器读取了一个长整数,我应该将其转换为当前年份的月份和日期

我正在使用此方法,但是返回错误的日期和时间。

func setDay(day:Double) {


    let formatter = DateFormatter()
    formatter.calendar = Calendar(identifier: .persian)
    formatter.locale = Locale(identifier: "fa_IR")
   var date = Date(timeIntervalSince1970: (day / 1000.0))
    // day
    formatter.dateFormat = "dd"


    //time=formatter.string(from: date)

    self.day = formatter.string(from: date)
    print(self.day) //wrong day
}

例如长整数为:1532928652552.0

在我国家的本月中的当天是11,但返回8

1 个答案:

答案 0 :(得分:1)

func convertEpochToStringDate(epoch: Int) -> String {
    let dbl = TimeInterval(epoch)
    let date = Date(timeIntervalSince1970: dbl)

    let formatter = DateFormatter()
    formatter.calendar = Calendar(identifier: .persian)
    formatter.locale = Locale(identifier: "fa_IR")
    formatter.dateFormat = "dd"
    formatter.timeZone = TimeZone(identifier: "IRST")

    return formater.string(from: date)
}

让我们测试一下:

let time = convertEpochToStringDate(epoch: 1532928652552 / 1000)
print(time)

输出:۰۸