javascript - 如何使用Moment js将UTC时间转换为正常时间格式

标签 javascript momentjs

我正在尝试将 UTC 时间格式转换为本地时间格式:

示例如下:

我从服务器端获取了UTC格式的时间,如下所示:2014-09-17T11:09:58+1100。我的要求是将其转换为 2014 年 9 月 17 日。

但是,我尝试了以下所有方法,但仍然得到 03 Sep 2014。为什么会发生这种情况?

我尝试过的:

function dateFormatter(UTC) {
        var dateFormat = 'd MMM YYYY';

        console.log(moment(UTC).zone('+1100').format(dateFormat));
        return moment(UTC).format(dateFormat).toLocaleString();
    }

这两种方法仍然得到相同的结果:2014 年 9 月 3 日

最佳答案

一些事情:

  • UTC 指 Coordinated Universal Time ,这是一种计时系统,而不是一种格式。

  • “UTC 格式”的值的偏移量为零。由于您说该值的偏移量为 +1100,因此将其称为“UTC”没有任何意义。

  • 您不应调用 zone 函数。即用于将输入值转换为特定时区偏移量。由于您的输入值已经包含偏移量,因此调用它没有什么意义。

  • 如果您只是想保留给定的偏移量,请使用 moment.parseZone相反。

  • format string characters区分大小写。小写的 d 表示星期几,为 0 到 6 之间的数字。您应该使用大写的 D 来指定月份中的某一天。

  • toLocaleString 不是必需的。请注意,您是从字符串而不是日期或时刻调用该函数。

把它们放在一起:

function dateFormatter(s) {
    return moment.parseZone(s).format('D MMM YYYY');
}

关于javascript - 如何使用Moment js将UTC时间转换为正常时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924277/

相关文章:

javascript - 在 JavaScript 中,如何找到数字字段的容器对象?

Javascript 事件监听器退出(?)监听... Youtube API - 无控制台错误

javascript - 使用 Moment.js 制作原生 ELM 模块

javascript - Momentjs 格式 : apply italic text styling

javascript - 伦敦时间与 GMT 不同的日期

javascript - parseInt(x,10) 导致最大调用堆栈/太多递归错误

javascript - HTML5 : How do you place a fixed Text Input over a centering canvas?

momentjs - 如何在时刻时区获取默认时区时间

javascript - 了解使用 AngularJS promises,它们将如何帮助解决这个问题

javascript - 时刻.js : how to get short date format?