设置utcOffset后设置时刻日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置utcOffset后设置时刻日期相关的知识,希望对你有一定的参考价值。

我想在YYYYMMDD上设置一个日期,该日期应该引用特定utcOffset上的日期。但是我不确定在设置utcOffset之后设置这个日期的最佳和优雅的方法是什么。

我能得到的结果如下,但不是我想要的实际结果。我需要一种方法来首先设置偏移量,然后根据此偏移量设置YYYYMMDD

moment.utc(ymdDate, 'YYYYMMDD').utcOffset(timeOffset)

例:

如果我有一个像20190420这样的日期必须用在一个应该指不同时区的时刻对象上,我会按照以下日期生成4月19日。

moment.utc(20190420, 'YYYYMMDD').utcOffset(-300).format()

结果:2019-04-19T19:00:00-05:00

预期成果:2019-04-20T00:00:00-05:00

答案

你可以使用utcOffset传递true作为第二个参数

utcOffset函数有一个可选的第二个参数,它接受一个布尔值,指示是否保留现有的时间。

  • 传递false(默认值)将在世界时间保持相同的瞬间,但当地时间将改变。
  • 通过true将保持相同的当地时间,但代价是选择世界时的不同点。

这是一个实时样本:

console.log( moment.utc(20190420, 'YYYYMMDD').utcOffset(-300, true).format() );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

以上是关于设置utcOffset后设置时刻日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 java 上设置日期的 24 小时格式?

具有相同时区但不同 utcoffset() 的日期时间对象

日期时间、熊猫和时区问题:AttributeError:“datetime.timezone”对象没有属性“_utcoffset”

At一次性任务设置#yyds干货盘点#

时刻 vs date-fns 语言环境日期格式

日期类Date