如何全局覆盖intl和devextreme使用的dateformat?目前,它已正确加载了语言环境de-DE并将日期格式化为: d.m.yyyy 。但是,我想显示它 dd.mm.yyyy (日期和月份为2位数)。
可以以某种方式覆盖默认的Intl.DateTimeFormat吗?我使用角度为angular-cli@6.0.0
Regargs
加布里埃尔
答案 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/