如何将UTC时间转换为本地时间Angular?

15

我在数据库中有UTC时间。

我希望将此时间转换为格式为dd.mm.yy h.m.s的本地时间。

怎么做呢?

我的日期是UTC时间:

2019-08-08 08:57:59

需要本地时间+4:00

3个回答

25

在转换之前只需添加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 时间,然后通过日期管道运行:

如果你的时间看起来像 '2019-08-08T08:57:59',那么只需在末尾连接 'z' 表示它是 UTC 时间,然后通过日期管道运行:

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

1
这是来自数据库的日期:2019年08月08日 12:22:48 PM UTC - OPV
@OPV 你可以按照任何格式编写,主要的要求是添加 UTC - StepUp
1
它对我不起作用,它给出了UTC格式:<p>日期是{{today | date:'yyyy-MM-dd HH:mm:ss'}}</p> - OPV
我的日期是UTC时间:2019-08-08 08:57:59 - OPV
1
这在Safari中不起作用。它会返回NaN /无效日期。 - Grogu

7

使用Angular的日期管道。可以采用以下两种方式:

HTML

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

或者

Typescript

formatDate(value_expression, format, timezone, locale )


1
在转换字符串之前,在字符串中添加“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
@OPV 你可以重新格式化你的日期。 - Fai Zal Dong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接