试图将Unix纪元时间转换为UTC本地化日期/时间字符串

Trying to convert Unix Epoch time into UTC localized date/time string

本文关键字:时间 UTC 本地化 日期 字符串 转换 Unix 纪元      更新时间:2023-09-26

我的目标是将表示Unix Epoch时间(或从1970年1月1日午夜开始的毫秒数)的整数转换为UTC(或GMT)时区的本地时间。

我有这个方法:

function formatDateTimeFromTicks(nTicks)
{
    //'nTicks' = number of milliseconds since midnight of January 1, 1970
    //RETURN:
    //      = Formatted date/time
    return new Date(nTicks).toLocaleString();
}

作为一个例子,我使用的是1442004135000的值,它应该为我的区域设置提供‎9‎/‎11‎/‎2015‎ 8‎:‎42‎:‎15‎ ‎PM(这里是您可以检查的地方),但是我的方法:

alert(formatDateTimeFromTicks(1442004135000));

给我‎‎9‎/‎11‎/‎2015‎ ‎1‎:‎42‎:‎15‎ ‎PM

知道为什么和如何修复它吗?

本地Date对象是不够的,因为即使在最好的情况下,它也不会给你一个UTC locale字符串。我强烈建议您使用优秀的moment库来实现跨所有平台的可靠行为。

用法语显示良好的本地化UTC:

moment(1442004135000).utc().locale('fr').format('LLLL')

=>