swift - 到完整日期的毫秒数在我的时区返回错误的日期

标签 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

最佳答案

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)

输出:08

关于swift - 到完整日期的毫秒数在我的时区返回错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51648324/

相关文章:

swift - 在 watchOS 中使用 environmentObject

ios - UIDynamicAnimator - 基于设备运动滚动移动 View

python - 使用 Google Cloud Functions 时如何设置 Google Cloud Datastore 实体的日期属性?

c - gmtime_r 和 localtime_r() 在 vxworks 上返回相同的结果

perl - 将 999 年之前的时间转换为纪元

arrays - Swift3 错误 : Binary operator '<' cannot be applied to two 'ArraySlice<Int>' operands

ios - 将自定义 tableviewcell 连接到 Uitableview

java - System.currentTimeMillis()、new Date().getTime() 和 Calendar.getInstance().getTimeInMillis() 的准确性?

javascript - 如何在 javascript/Node.js 中获取时间?

mysql - 如何使用 SQL 查找不交叉的时间集?