从日期字符串和语言环境创建日期对象
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'
我不确定这是否会成为一个重复的问题,因为我在 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'