# Angular日期在TypeScript中格式化转换应用

> 组件模板中我们常常使用Angular内置管道DatePipe将其日期格式化，如同{{ startTime | date:'yyyy-MM-dd' }}这般操作，即可转换为字符串格式。那么在TS文件中我们也可以通过DatePipe或formatDate方法将其格式化。

Author: DeathGhost
Published: 2019-07-25 21:48:55
Category: angular
Canonical: https://www.deathghost.cn/article/angular/54
Keywords: Angular, DatePipe, formatDate, TypeScript, TS, 日期, 格式, 日期格式化, 日期转换, 时间格式化

在前端项目开发过程中往往会遇将日期格式化，转换为友好显示格式，如同将"Sat Jun 01 2019 23:21:55 GMT 0800"格式化为"yyyy-MM-dd"(年-月-日)；Angular项目中我们常常使用其内置管道将其格式转换e.g. {{ startTime | date:"yyyy-MM-dd" }}，以达到所要显示的格式;下面我们看看在TypeScript(.ts)中的方法应用。

Angular6.x之前一直使用DatePipe转换日期格式，在angular6.x 之后API中又发现formatDate方法，具体就不晓得了，我一直使用DatePipe。

![Angular日期时间格式化](https://www.deathghost.cn/public/upload/article/2019/07/1564062442305.jpg)

Angular日期时间格式化（DatePipe/formatDate）

DatePipe在.TS的应用

import { DatePipe } from '@angular/common';

export class DemoComponent implements OnInit {
constructor(private datePipe: DatePipe) {}
  formatDateFun(date) {
    return this.datePipe.transform(date, 'yyyy-MM-dd');
  }
}
别忘记在当前模块中将其providers: [DatePipe]添加。

formatDate在.TS的应用

import { Component, OnInit, Inject, LOCALE_ID } from '@angular/core';
import { formatDate } from '@angular/common';

export class DemoComponent implements OnInit {

  constructor(@Inject(LOCALE_ID) private locale: string) {}

  formatDateFun(date) {
    return formatDate(date, 'yyyy-MM-dd', this.locale);
  }
}
如上设置记得在项目根模块配置

import { NgModule, LOCALE_ID } from '@angular/core';
providers：[{provide: LOCALE_ID, useValue: 'zh-Hans' }]
又或者不设置，则在formatDate中直接使用'zh-Hans'（简体中文）即可，如：

formatDate(new Date(), 'yyyy-MM-dd', 'zh-Hans')
其语法结构如：

formatDate(value: string | number | Date, format: string, locale: string, timezone?)
value: 要格式化的日期，是一个日期、数字（从 UTC 时代以来的毫秒数）或 ISO 字符串;

format: 日期时间格式，使用预定义选项或自定义格式字符串（如：2019年07月25日...）;

locale: 区域代码;

timezone: (选填) 时区;

就到这里，上次在项目框架升级到Angular8.x版本时原 DatePipe 方法格式化地方报错，索性将其全更换为 formatDate 方法。

## Related

- Previous: [Angular 父组件与子组件通讯之共享服务](https://www.deathghost.cn/article/angular/50)
- Next: [Angular自定义预加载策略](https://www.deathghost.cn/article/angular/88)
