将UTC时间转换为特定格式的本地时间

时间:2018-09-27 16:38:26

标签: javascript momentjs

我有一个日期字符串,格式为dd.MM.yyyy HH:mm:ss,但我想将其UTC转换为本地日期。如何使用矩型库做到这一点?

const dateStr = '20.09.2018 16:12:37';
const format = 'dd.MM.yyyy HH:mm:ss';

// for local time of UTC +3.00 new date Str will be 20.09.2018 19:12:37

2 个答案:

答案 0 :(得分:1)

您必须使用moment.utc(String, String)使用UTC模式解析字符串

  

默认情况下,时刻会解析并以当地时间显示。

     

如果要解析或显示UTC时间,可以使用optimizer=adam代替model.compile()

然后您可以使用local()将其转换为本地时间:

  

在原始时刻上设置标记,以使用本地时间显示时刻,而不是原始时刻。

请注意,由于您输入的Debug.Break并非ISO 8601 / RCF 2822认可的格式,因此在解析时必须specify format。 Morover矩令牌区分大小写,因此您必须使用大写moment.utc()而不是moment()来解析年份,并使用大写dateStr来解析月份中的一天,因为小写YYYY代表day一周(星期一,星期二等)。

这里有一个现场样本:

yyyy
DD

请查看Local vs UTC vs Offset指南,以更好地了解UTC和区域设置模式在momentjs中如何工作。

答案 1 :(得分:0)

要将UTC转换为本地,您需要使用 moment.local()方法

const dateStr = '20.09.2018 16:12:37';
const format = 'DD.MM.YYYY HH:mm:ss';

var newDate = moment.utc().format(format);
var temp= moment.utc(newDate, format);
var local = moment(temp).local().format(format);

More info on the official Documentation