在 Angular 中,使用 DatePipe 和 formatDate 支持日期和时间的格式化和时区的转换。
DatePipe 可以将日期格式化为不同的字符串输出,并支持时区的转换。下面是一个示例:
在组件中引入 DatePipe:
import { DatePipe } from '@angular/common';
@Component({ selector: 'app-my-component', templateUrl: './my-component.component.html', styleUrls: ['./my-component.component.scss'], providers: [DatePipe], }) export class MyComponent { constructor(private datePipe: DatePipe) { }
formatDate() { const date = new Date(); const formattedDate = this.datePipe.transform(date, 'yyyy-MM-dd', 'UTC+8'); console.log(formattedDate); // 输出:2022-08-01 } }
在 formatDate 方法中,我们使用 this.datePipe.transform(date, 'yyyy-MM-dd', 'UTC+8') 将当前日期格式化为指定时区的字符串。
formatDate 是一个全局函数,使用方法和 DatePipe 类似,但是不需要实例化。
import { formatDate } from '@angular/common';
const date = new Date(); const formattedDate = formatDate(date, 'yyyy-MM-dd', 'UTC+8'); console.log(formattedDate); // 输出:2022-08-01
相比于使用 DatePipe,使用 formatDate 更为简洁,但是没有 DatePipe 支持的更多选项。
值得注意的是,时区的转换需要写入 UTC+8 或者其他有效值,否则将按照本地时区转换。
参考文献: