gpt4 book ai didi

angular - 带时区的日期管道 Angular 4 自定义格式(短)

转载 作者:太空狗 更新时间:2023-10-29 18:20:05 27 4
gpt4 key购买 nike

我需要打印带时区的时间戳自定义格式(短格式):

{{ '2017-06-29 09:55:01.956-0400' | date:'MMM dd, y hh:mm a' }}

输出:

Jun 29, 2017 07:25 PM

但我需要附加时区,例如:

Jun 29, 2017 07:25 PM IST

Angular 提供了带有 'z''Z' 的时区选项,但都没有给出预期的结果:

'MMM dd, y hh:mm a  z' ==> Jun 29, 2017 07:25 PM India Standard Time
'MMM dd, y hh:mm a Z' ==> Jun 29, 2017 07:25 PM GMT+5:30

我想要 Jul 7, 2017, 12:27:01 AM IST

最佳答案

DatePipe 使用 Intl 来格式化日期。因此,由您的站点打开的系统决定以何种格式返回当前时区。为了实现所需的行为,我建议您创建一个自定义 DatePipe,它将返回所需的 timezoe 缩写。例如:

import { Pipe } from "@angular/core";
import { DatePipe } from "@angular/common";

@Pipe({
name: "myDate",
pure: true
})
export class MyDatePipe extends DatePipe {
transform(value: any, pattern: string = "mediumDate"): string|null {
let result = super.transform(value, pattern);
result += " " + this.map[Intl.DateTimeFormat().resolvedOptions().timeZone];
return result;
}
map = {
"Asia/Calcutta": "IST"
};
}

但是,您需要将每个可能的时区添加到 map 对象。查看Plunker sample这说明了这种方法。

关于angular - 带时区的日期管道 Angular 4 自定义格式(短),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44957001/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com