时区转换

Time zone conversions

本文关键字:转换 时区      更新时间:2024-04-19

我的开始和结束日期如下,

开始日期:"2015-02-19T00:00-08:00"

结束日期:"2015-02-19T17:00:00-08:00"

正如你所看到的,日期格式是在PST中,所以日期在PST时区很好,我使用的片段如下,

moment(StartDate).format("MMM Do");

但当我在IST(印度标准时间)中查看同一页面时,它显示如下,

开始日期:"2月19日"结束日期:"2月20日"

请帮我解决这个问题,让我知道我缺少什么。提前谢谢。

这些是您的原始值:

Start Date: "2015-02-19T00:00:00-08:00"
End Date:   "2015-02-19T17:00:00-08:00"

这些是UTC中的等效值:

Start Date: "2015-02-19T08:00:00+00:00"
End Date:   "2015-02-20T01:00:00+00:00"

这些是印度标准时间的等效值:

Start Date: "2015-02-19T13:30:00+05:30"
End Date:   "2015-02-20T06:30:00+05:30"

这是为时区调整时间时的正常行为和预期行为。地球上两个不同的位置不一定总是遵守同一个日历日期。

有关时区的更多信息,我建议使用以下资源:

  • StackOverflow上的时区标签wiki
  • 维基百科时区页面
  • 我的Pluralsight日期和时间基础课程
  • 可视化网站,如worldtimebuddy.com和everythimezone.com
  • timeanddate.com上的详细时区信息

关于moment.js,如果您只是说希望保留原始值(无论用户的时区如何),那么请使用parseZone函数。

moment.parseZone(StartDate).format("MMM Do");

您可以使用即时时区实现无问题

moment(StartDate).tz('America/Denver').format("MMM Do");

或太平洋标准时间区的任何其他城市。。。