将任何语言环境日期转换为美国语言环境日期字符串

问题描述

我已将应用程序转换为德语作为区域格式,并且注册了locale_id,因为我能够看到预期的日期格式。但是,正如我以德语格式显示的日期是2020年10月13日(它使用“。”特殊字符,格式是“ DD.MM.YYYY”

当我从日期选择器中选择日期时,它会按预期方式被选择,但是在保存时,我必须将其转换为美国标准的区域设置格式,以便存储数据库

例如- 德语为locale_ID->日期格式为DD.MM.YYYY 但是在保存时,我想将其转换为YYYY-MM-DD

我尝试关注-

  1. @ angular / common的FormatDate(“ DD.MM.YYYY”,“ shortDate”,“ en-US”),但会引发无效日期错误
  2. moment.js的瞬间(“ DD.MM.YYYY”)。format(“ YYYY-MM-DD”),但这给了我无效的日期。

您能帮助我,如何准确地将日期更改为美国语言环境,而又不更改locale_Id,因为我只希望德语系统。

我的系统几乎接受所有语言环境,因此德语到美国就是一个例子。因此,我正在寻找一种将其转换的通用方法

解决方法

您可以使用Moment.js尝试

console.log(moment("02.04.2021","DD.MM.YYYY").format('YYYY-MM-DD'));

    moment.locale(this.locale);
    if (!format) { format = "YYYY-MM-DD"; }
    var localeFormat = moment.localeData().longDateFormat('L');
    return moment(date,localeFormat).format(format);