【问题标题】:Is there any way I can get the format of date based on locale?有什么方法可以根据语言环境获取日期格式吗?
【发布时间】:2017-08-08 14:37:05
【问题描述】:

我在我的 javascript 代码中使用Intl 库,如下所示:

const dateFormat = new Intl.DateTimeFormat(locale, {
    day: '2-digit',
    month: '2-digit',
    year: 'numeric',
});
kk = new Date('1992-10-28')
dateFormat.format(kk, 'en-Us') ==> "10/28/1992"

但我想要"dd/mm/yyyy" 之类的回复:

let format = dateFormat.getFormat('en-Us'); // --> "dd/mm/yyyy"

【问题讨论】:

标签: javascript reactjs date react-intl


【解决方案1】:

Intl 对象不允许您指定整个格式,只能指定其中的一部分。如果您想要特定的值序列,您可以尝试适合的语言值或手动执行。除了 US 之外,几乎所有英语变体都会给出 d、m、y,但分隔符是另一个问题。幸运的是,“/”似乎是默认值。

令人惊讶的是,如果您提供无法识别的英文变体,它可能会默认为特殊的美国 m/d/y 序列。

var d = new Date();
var options = {day:'2-digit', month:'2-digit', year:'numeric'}

console.log(d.toLocaleString('en-gb', options));

否则,库可以提供帮助,但如果您只想支持一种格式,则可以使用 2 或 3 行函数。

function formatDMY(date) {
  var z = function(n){return (n<10?'0':'')+n}
  return z(date.getDate()) + '/' +
         z(date.getMonth()+1) + '/' +
         date.getFullYear();
}

console.log(formatDMY(new Date()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多