将任何语言环境日期转换为 en-US 语言环境日期字符串

Convert the any locale Date to en-US locale date string

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

当我 select 从日期选择器获取日期时,它按预期得到 selected 但在保存时我必须将格式转换为正常的 en-US 语言环境以便数据库存储。

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

我试过以下 -

  1. @angular/common 的 FormatDate("DD.MM.YYYY", "shortDate", "en-US") 但它抛出无效日期错误
  2. moment("DD.MM.YYYY").format("YYYY-MM-DD") of moment.js 但这给了我无效的日期。

你能帮我看看我应该如何在不更改 locale_Id 的情况下将日期更改为 en-US 区域设置,因为我只希望系统使用德语。

我的系统接受几乎所有语言环境,因此从德语到 en-US 就是一个例子。所以我正在寻找一些通用的方法来转换它。

您可以尝试使用 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);