angular2材质2 Datepicker - 输出日期格式

d12*_*546 5 angular-material angular

我在angular4项目中使用https://material.angular.io/components/component/datepicker.如何在输入框中用"2017年5月29日"等短格式格式化所选日期.目前显示为2017年5月29日

示例代码:

<md-input-container>
  <input mdInput readonly="true" [mdDatepicker]="startDatePicker" [mdDatepickerFilter]="myFilter" [min]="minDate" [max]="maxDate" class="date-text ng-dirty ng-valid-parse ng-touched ng-not-empty ng-valid ng-valid-required" placeholder="Choose a date">
  <button mdSuffix [mdDatepickerToggle]="startDatePicker" class="date-icon"></button>
</md-input-container>

<md-datepicker #startDatePicker [dateFormat]="'LL'" startView="month" [startAt]="currentDate"></md-datepicker>
Run Code Online (Sandbox Code Playgroud)

TS:

@ViewChild('startDatePicker') startDatePicker: MdDatepicker<Date>;
Run Code Online (Sandbox Code Playgroud)

PS.[dateFormat] ="'LL'"无效

hip*_*r2d 4

目前您无法轻松设置日期格式。Material 2 Datepicker API中没有这样的属性,更改格式的唯一正确方法是提供您自己的DateAdapter实现。官方文档没有提供任何相关说明。目前只有一种基本实现可以根据语言环境定义格式。对此有很多抱怨,更多​​的适配器应该很快就会出现。您可以尝试使用此问题线程中基于 moment.js 的一个,或者只是等待。

您还可以使用区域设置来在日期选择器中获取不同的格式。但这只是一个解决方法,直到正式的解决方案出现:

export class AppModule {
  constructor(private dateAdapter:DateAdapter<Date>) {
    dateAdapter.setLocale('de'); // DD.MM.YYYY
  }
}
Run Code Online (Sandbox Code Playgroud)