我正在尝试将 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/