date-fns - 有没有办法获得短日期格式字符串

date-fns - is there a way to get short date format string

我正在使用 date-fns 并试图弄清楚如何从语言环境中获取日期格式字符串。 例如。使用 en-US 语言环境时,我希望得到 'MM/dd/yyyy' 作为结果。

我找到了这个答案 Get Locale Short Date Format using javascript 但是为此编写自己的函数似乎是多余的,因为 date-fns 语言环境已经包含这样的字符串...

您可以将 javascript 的 Intl 对象与 DateTimeFormat 一起使用:

let date = new Intl.DateTimeFormat(navigator.language).format(new Date());

console.log(date)

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

您仍然需要按照其文档的建议创建从语言环境字符串到 date-fns 语言环境模块的映射 https://date-fns.org/v1.9.0/docs/I18n

嗯,阅读 date-fns 源代码回答了我的问题:

import { enGB } from 'date-fns/locale';
let formatString = enGB.formatLong.date({width:"short"});