与新版本的doesn不同,角4 DatePipe似乎不支持将时区作为参数传递。
我有一个后端服务返回一个ISO 8601格式化的没有时区的日期时间字符串(例如2018-12-04T19:01:50.062
) --存储并返回为UTC。
使用DatePipe
,如何将日期时间显示为用户的本地时间?
发布于 2018-12-04 14:13:23
角4的DatePipe
支持UTC区号后缀( 'Z‘),因此如果您传递给管道的值是UTC日期时间,那么后端服务可以用’Z‘区域指示符返回您的日期时间,也可以附加Z
,它将显示用户本地时间中的日期时间。
例如,
<span class="date">{{ value + 'Z' | date:'short' }}</span>
注意:如果您希望DatePipe
使用用户的浏览器设置,则需要确保您正在动态地向正确的区域设置提供LOCALE_ID (将导出的提供程序导入应用程序模块):
export class WindowRefService {
public getWindow(): Window {
return window;
}
}
export function languageFactory(windowRef: WindowRefService): string {
return windowRef.getWindow().navigator.language;
}
export const localeProvider = {
provide: LOCALE_ID,
deps: [WindowRefService],
useFactory: languageFactory
};
参见关于LOCALE_ID
:Angular4:用户的区域设置的其他问题
https://stackoverflow.com/questions/53622230
复制