.ts文件中datepipe.transform方法的dd/mm/yyyy格式



我正在分析一个csv文件,该文件的日期列为dd/mm/yyyy格式。在将日期保存到数据库之前,需要将日期的格式转换为yyyy-mm-dd。所以我使用datepipe.transform方法如下

this.datePipe.transform(x[this.csvcolumns.colDOB], 'yyyy-MM-dd','de')

默认情况下,日期管道只接受mm/dd/yyyy的美国日期格式。因此,对于2000年2月18日这样的日期,日期管道会抛出如下错误。

InvalidPipeArgument: 'Unable to convert "13/02/2012" into a date' for pipe 'DatePipe'

我在app.module.ts.中添加了以下配置

import { registerLocaleData } from '@angular/common'; 
import localeDe from '@angular/common/locales/de';
registerLocaleData(localeDe);

那么,在DatePipe.transform中添加LocaleId的最佳方法是什么呢

(method) DatePipe.transform(value: any, format?: string, timezone?:string, locale?: string): string

我需要为此在构造函数中进行任何更改吗?我的构造函数看起来像下面的

providers: [DatePipe] })

export class BulkuploadPage implements OnInit {
constructor(private datePipe: DatePipe) { } 
ngOnInit() {}

就我个人而言,我认为在自定义datePipe之外使用datePipe转换有点反模式。

这是我使用moment的方式:

myFormattedDate = moment('13/02/2000', 'DD/MM/YYYY').format('YYYY-MM-DD');
//where..
myFormattedDate = moment(yourDate, currentFormat).format(desiredFormat);

然后你可以使用

<p>{{ someDate | date: 'YYYY-MM-dd' }}</p>

请注意,您可能不需要使用管道的格式部分,具体取决于您是否更改了默认设置。

工作示例:https://stackblitz.com/edit/angular-ps68n4?file=src%2Fapp%2Fapp.component.ts

最新更新