使用intl在angular / devextreme中自定义日期格式

时间:2018-06-04 22:10:43

标签: angular date format angular-cli devextreme

如何全局覆盖intl和devextreme使用的dateformat?目前,它已正确加载了语言环境de-DE并将日期格式化为: d.m.yyyy 。但是,我想显示它 dd.mm.yyyy (日期和月份为2位数)。

可以以某种方式覆盖默认的Intl.DateTimeFormat吗?我使用角度为angular-cli@6.0.0

Regargs
加布里埃尔

3 个答案:

答案 0 :(得分:0)

在Angular中,您可以设置您的语言环境。请阅读Angular说明中的Internationalization (i18n)。在那里,您可以找到有关如何设置区域设置的分步说明。通过使用管道,您可以根据需要设置日期格式。

答案 1 :(得分:0)

一种解决方案是为每个网格创建一个过载。目前,这是我找到的唯一方法,但我不太喜欢它,因为它是为网格中的每个行列调用的:

import DataGrid from 'devextreme/ui/data_grid';

export class DevextremeUtils {

  public static registerComponentsDefaultOtions(){
    DataGrid.defaultOptions({
      options: {
        customizeColumns: function(ev){
          for(let i = 0; i < ev.length; i++){
            if(ev[i].dataType == 'date' && ev[i].format == 'shortDateShortTime'){
              ev[i].format = {
                year: "numeric",
                  month: "2-digit",
                  day: "2-digit"
              }
            }
          }
        },
      }
    })
  }

}

答案 2 :(得分:0)

据我所知,可以覆盖每个小部件。 您可以导出包含intl格式设置选项的常量,并将其与所有小部件一起使用。

export const format = { year: 'numeric', month: '2-digit', day: '2-digit' };

这将使所有格式(无论区域设置如何)均使用2位数字的日期,2位数字的月份和4位数字的年份。 大多数DevExtreme小部件(如果不是全部)都具有采用格式对象的配置。

参考:https://js.devexpress.com/Documentation/ApiReference/Common/Object_Structures/format/