Angular 9 DatePipe:如何忽略时区格式
Angular 9 DatePipe: How to ignore timezone format
我目前正在使用 angular 9 DateTime Pipe 来格式化我的日期时间。
我使用 DataTimeOffset 将日期时间存储在数据库中。
当我从服务器检索此日期时,格式如下:“2021-03-30T16:26:52.047+02:00”
我正在使用此代码将格式应用于我的日期:
const pipe = new DatePipe('en-Us);
const formatedDate = pipe.transform(date, 'dd.MMM.yyyy HH:mm:ss');
当我这样做时,管道正在占用浏览器时间并格式化我的日期。
我知道这是默认选项,如果我不将第三个参数发送到转换函数。
但我有业务需要按原样显示日期...但格式为上述格式,
我的问题是:如何避免时区转换但仍然格式化日期时间?
您可以使用var transformedDate = new Date(datepipe.transform(myDate, 'yyyy-MM-dd' + ' UTC'))
经过多日的调查,唯一的解决方法是使用库“Luxon”。
https://moment.github.io/luxon/docs/manual/zones.html
有了这个库,我可以做这样的事情:
var keepOffset = DateTime.fromISO("2017-05-15T09:10:23-09:00", { setZone: true });
这将保持偏移不变。
我目前正在使用 angular 9 DateTime Pipe 来格式化我的日期时间。 我使用 DataTimeOffset 将日期时间存储在数据库中。 当我从服务器检索此日期时,格式如下:“2021-03-30T16:26:52.047+02:00”
我正在使用此代码将格式应用于我的日期:
const pipe = new DatePipe('en-Us);
const formatedDate = pipe.transform(date, 'dd.MMM.yyyy HH:mm:ss');
当我这样做时,管道正在占用浏览器时间并格式化我的日期。 我知道这是默认选项,如果我不将第三个参数发送到转换函数。
但我有业务需要按原样显示日期...但格式为上述格式,
我的问题是:如何避免时区转换但仍然格式化日期时间?
您可以使用var transformedDate = new Date(datepipe.transform(myDate, 'yyyy-MM-dd' + ' UTC'))
经过多日的调查,唯一的解决方法是使用库“Luxon”。
https://moment.github.io/luxon/docs/manual/zones.html
有了这个库,我可以做这样的事情:
var keepOffset = DateTime.fromISO("2017-05-15T09:10:23-09:00", { setZone: true });
这将保持偏移不变。