我正在使用 date-fns 并试图弄清楚如何从语言环境中获取日期格式字符串。例如,当使用 en-US 语言环境时,我希望得到 'MM/dd/yyyy' 作为结果。
我找到了这个答案Get Locale Short Date Format using javascript但是为此编写自己的函数似乎是多余的,因为 date-fns 语言环境已经包含这样的字符串......
我正在使用 date-fns 并试图弄清楚如何从语言环境中获取日期格式字符串。例如,当使用 en-US 语言环境时,我希望得到 'MM/dd/yyyy' 作为结果。
我找到了这个答案Get Locale Short Date Format using javascript但是为此编写自己的函数似乎是多余的,因为 date-fns 语言环境已经包含这样的字符串......
好吧,阅读 date-fns 源代码回答了我的问题:
import { enGB } from 'date-fns/locale';
let formatString = enGB.formatLong.date({width:"short"});
var dateFns = require("date-fns")
var locale = require("date-fns/locale")
dateFns.format(new Date(), 'P', { locale: locale.enGB }) // 29/01/2020
dateFns.format(new Date(), 'P', { locale: locale.en }) // 01/29/2020
您仍然需要按照文档https://date-fns.org/v1.9.0/docs/I18n的建议创建从语言环境字符串到 date-fns 语言环境模块的映射
您可以使用Intl
javascript 对象DateTimeFormat
:
let date = new Intl.DateTimeFormat(navigator.language).format(new Date());
console.log(date)