从日期字符串和语言环境创建日期对象

Creating a date object from a date string and locale

我不确定这是否会成为一个重复的问题,因为我在 SO 上找不到任何内容,因此,我将继续这个问题 -

我有一个依赖于语言环境的日期字符串,我也有语言环境信息。

例如。 dateStr = '06/07/2021'locale='en-GB'.

如何从中获取 JS Date 对象? Date 构造函数似乎不采用语言环境,默认情况下根据 en-US 语言环境 (MM-DD-YYYY) 对其进行解析。

我的意思是,上面的 dateStr 将被转换为 7th June 2021 而不是使用 Date 构造函数的实际 6 July 2021

更新:
我从 d2l-intl 那里得到了一些东西,但它不起作用。很奇怪。

var parser = new d2lIntl.DateTimeParse('en-GB');
var date = parser.parseDate('23/05/2021');
console.log(
    date.getMonth(),
    date.getDate()
);

因为它仍然接受 en-US 格式的日期字符串而中断。

看看问题的评论,我相信有时候人们只是不理解问题并开始责怪问题本身。太荒谬了:D

这可能不是解决问题的完美方法(可以更简洁更短),但这绝对有效。

locale = 'en-GB';
value = '07/06/2021';


moment.locale(locale);
const localeData = moment.localeData();
const format = localeData.longDateFormat('L');
console.log(moment(value, format).format('YYYY-MM-DD')); // '2021-06-07'