代码之家  ›  专栏  ›  技术社区  ›  theJuls

将时刻日期字符串更改为适当的时区

  •  1
  • theJuls  · 技术社区  · 6 年前

    我有一个有时间和时区的约会。

    我需要以一种特定的方式格式化它,这就是为什么我要使用矩。

    假设我要输入的日期字符串是 2018-12-31 02:00:00.000 +00:00

    我通过以下操作将其转换为特定格式:

    const properDate = moment(date, 'YYYY-MM-DD hh:mm:ss:ms')
    

    所以我的问题是,在将日期/时间转换为特定格式时,如何将时区添加到矩中? 我知道这不像传递参数那么简单。这是我应该调用的另一个函数吗?

    我试过了

    const properDate = moment(date, 'YYYY-MM-DD hh:mm:ss:ms').tz('America/New_York')
    

    但这也不起作用。

    moment-timezone . 似乎我不能让它以我需要的方式格式化,也不能让它在正确的时区。

    所以基本上,我认为我可以这样做:

    const momentDate = moment(date)
    const properDate = momentDate.tz(timezone).format('YYYY-MM-DD hh:mm:ss:ms')
    

    不幸的是,只要我尝试格式化它,它也不会工作。

    1 回复  |  直到 6 年前
        1
  •  3
  •   VincenzoC    6 年前

    moment.tz 用于分析使用给定时区的时间字符串(例如。 'America/New_York' )当 tz() 用于在区域之间转换。

    const date = '2018-12-30 21:00:00.000';
    const properDate = moment.tz(date, 'YYYY-MM-DD hh:mm:ss.SSS', 'America/New_York')
    console.log(properDate.format());
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.23/moment-timezone-with-data-2012-2022.min.js"></script>
    推荐文章