Javascript 将时刻日期字符串更改为适当的时区
我有一个有时间和时区的约会 我需要以一种特定的方式格式化它,这就是为什么我要使用矩 假设我要输入的日期字符串是Javascript 将时刻日期字符串更改为适当的时区,javascript,date,momentjs,Javascript,Date,Momentjs,我有一个有时间和时区的约会 我需要以一种特定的方式格式化它,这就是为什么我要使用矩 假设我要输入的日期字符串是2018-12-31 02:00:00.000+00:00 我通过以下操作将其转换为特定格式: const properDate = moment(date, 'YYYY-MM-DD hh:mm:ss:ms') 但是,这是假设日期是UTC,我希望它是在美国/纽约时区,因此我预期的日期和时间实际上是: 2018-12-30 21:00:00.000 所以我的问题是,在将日期/时间转换为特
2018-12-31 02:00:00.000+00:00
我通过以下操作将其转换为特定格式:
const properDate = moment(date, 'YYYY-MM-DD hh:mm:ss:ms')
但是,这是假设日期是UTC,我希望它是在美国/纽约时区,因此我预期的日期和时间实际上是:
2018-12-30 21:00:00.000
所以我的问题是,在将日期/时间转换为特定格式时,如何将时区添加到矩中?
我知道这不像传递参数那么简单。这是我应该调用的另一个函数吗
我试过了
const properDate = moment(date, 'YYYY-MM-DD hh:mm:ss:ms').tz('America/New_York')
但这也不起作用
编辑:我还应该提到我也在使用时刻时区
。似乎我不能让它以我需要的方式格式化,也不能让它在正确的时区
所以基本上,我认为我可以这样做:
const momentDate = moment(date)
const properDate = momentDate.tz(timezone).format('YYYY-MM-DD hh:mm:ss:ms')
不幸的是,只要我尝试格式化它,它也不会工作。用于解析使用给定时区的时间字符串(例如,'America/New_York'
),而用于在区域之间转换
这里有一个活样本:
const date='2018-12-30 21:00:00.000';
const properDate=moment.tz(日期“YYYY-MM-DD hh:MM:ss.SSS”,“美国/纽约”)
log(properDate.format())代码>
您必须使用并解析您的输入,很肯定以前有人问过。我对此进行了研究,但我发现唯一的方法是,无法按照我要求的方式对其进行格式化。基本上,我想我需要这两种方法一起工作:将其格式化为YYYY-MM-DD hh:MM:ss:ms
格式,并使其处于正确的时区。