如何将 10digit int 转换为日期

How to convert 10digit int to date

如何将1640704675转换成日期

extension Date {
    var millisecondsSince1970:Int64 {
        return Int64((self.timeIntervalSince1970 * 1000.0).rounded())
    }

    init(milliseconds:Int64) {
        self = Date(timeIntervalSince1970: TimeInterval(milliseconds) / 1000)
    }
}

//Convert date to another formate.
func dateConvertion(date: Date, dateFormat: String) -> String {
    let dateFormater = DateFormatter()
    dateFormater.dateFormat = dateFormat
    dateFormater.locale = Locale(identifier: "en_US_POSIX")
    let dateStr = dateFormater.string(from: date)
    return dateStr
}

尝试将 10 位 Int 转换为 Date //

if let modifiedDate = callValue?.updatedDate{
        let dateValue = String(modifiedDate).toDate(.isoDateTimeMilliSec) ?? Date()
        let finalDate = dateConvertion(date: dateValue, dateFormat: formaterMonthDateyear)
        print("finalDate \(finalDate)")
}

将int值转换为日期时显示当前日期值

如评论中所述,您的整数值似乎是自 1970 年以来的秒数,而不是毫秒数。只需使用现有的 init(timeIntervalSince1970: TimeInterval) 方法,并将您的整数转换为 TimeInterval:

并这样称呼它:

print(Date(timeIntervalSince1970: TimeInterval(1640704675)))

如评论中所述,显示 2021-12-28 15:17:55 +0000,看起来像是最近的有效日期。