【问题标题】:How to convert datetime UTC to local time Angular? [duplicate]如何将日期时间 UTC 转换为本地时间 Angular? [复制]
【发布时间】:2023-03-07 03:36:01
【问题描述】:

我在数据库中有 UTC 时间。

我想将这个时间转换为本地时间,格式为 dd.mm.yy h.m.s

怎么做?

我的日期是 UTC:

2019-08-08 08:57:59

需要当地时间+4:00

【问题讨论】:

    标签: angular angular8


    【解决方案1】:

    只需在转换前附加 UTC:

    let yourDate = new Date('08/08/2019 12:22:48 PM UTC');
    yourDate.toString();
    

    或者:

    let yourDate = new Date('08/08/2019 12:22:48 UTC');
    yourDate.toString();
    

    此外,您可以使用pipe,它使用语言环境在用户的时区显示日期。尝试使用客户的时区数据::

    <p>The date is {{today | date:'yyyy-MM-dd HH:mm:ss'}}</p>
    

    更新:

    对于您的情况:

    let dateString = '2019-08-08 08:57:59';
    let yourDate: Date = new Date(dateString + ' UTC');
    

    HTML:

    <div>{{ today | date : 'EEEE, MMMM d, h:mm:ss' }} {{ today | date : 'a' | lowercase }}
    

    如果您的时间看起来像“2019-08-08T08:57:59”,那么只需在末尾连接“z”以将其声明为 UTC,然后像这样通过日期管道运行

    <div>{{ today+'Z' | date : 'EEEE, MMMM d, h:mm:ss' }}</div>
    

    【讨论】:

    • 这是来自数据库的日期:08/08/2019 12:22:48 PM UTC?
    • @OPV 你可以写任何你想要的格式。主要要求就是添加UTC
    • 它对我不起作用,它提供 UTC 格式:

      日期是 {{today |日期:'yyyy-MM-dd HH:mm:ss'}}

    • 我的日期是 UTC:2019-08-08 08:57:59
    • 这在 Safari 中不起作用。它返回 NaN/无效日期。
    【解决方案2】:

    使用 angulars 日期管道。要么:

    HTML

    {{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}

    或 打字稿

    formatDate(value_expression, format, timezone, locale )

    【讨论】:

      【解决方案3】:

      在转换之前将“UTC”附加到字符串

      var date = new Date('6/29/2011 4:52:48 PM UTC');
      date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"
      

      【讨论】:

      • 它不适用于日期:2019-08-08 08:57:59
      • @OPV 你可以重新格式化你的日期
      猜你喜欢
      • 2013-02-14
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      • 2019-03-30
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      相关资源
      最近更新 更多