- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Intl.DateTimeFormat.format
功能,您可以生成为特定语言环境设置格式的日期字符串。传递给 Intl.DateTimeFormat.format()
的选项函数允许了解一些关于格式的信息,例如年份是两位数还是四位数,但有些东西是未知的,例如使用的分隔符或年、月和日元素的顺序。
试图将该字符串解析回 Date
对象并不总是可以使用 Date.parse
.
例如,此代码在西类牙语言环境中失败,但适用于英语:
const date = new Date(2020, 10, 28);
const regionEs = new Intl.DateTimeFormat('es', { timeZone: 'UTC' });
const regionEn = new Intl.DateTimeFormat('en', { timeZone: 'UTC' });
const stringEs = regionEs.format(date); // "28/11/2020"
const stringEn = regionEn.format(date); // "11/28/2020"
const parseEs = new Date(Date.parse(stringEs)); // Error -> Trying to set month to 28
const parseEn = new Date(Date.parse(stringEn)); // Ok
但是如果用于生成字符串的格式模板可以从
Intl
获得,那就很容易了。 : 类似
"dd/mm/yyyy"
.这样,字符串可以安全地分成可用于构建
Date
的部分。目的。问题是似乎无法从
Intl.DateTimeFormat
获取该信息。 .
[Intl.resolvedOptions()][1]
方法不提供任何帮助,因为它只提供了在构造函数上传递的选项加上默认值。
Intl
格式的字符串吗?到
Date
对象不使用
moment.js
或任何其他外部图书馆?
Intl
根据语言环境和一组格式选项对其进行格式化。
"27/11/2020"
显示日期,他决定将日期更改为
"28/11/2020"
.这将失败,因为
Date.parse()
无法解析此日期(见上文)。这在其他地区可能会变得更糟。
最佳答案
当然可以使用 moment.js
对于这样的事情,但您需要根据您的代码知道您正在使用的每个地区的格式
const parseEs = moment("28/11/2020", "DD/MM/YYYY");
const parseEn = moment("11/28/2020", "MM/DD/YYYY");
到底
moment
提供
toDate()
函数,以便您可以再次将其传递给区域格式(以防您使用任何组件或库添加/减去或编辑日期)
const stringEs = regionEs.format(parseEs.toDate()); // "28/11/2020"
const stringEn = regionEn.format(parseEn.ToDate()); // "11/28/2020"
关于javascript - 如何解析从 Intl.DateTimeFormat 生成的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64569438/
我正在使用: @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) @JsonFormat( pattern = "MM-dd-yyyy" ) private
我看不到日期格式被错误地传递到哪里导致 RangeError? 我似乎无法解析 user.created .实际上,用户详细信息是从 json 响应中引入的,但我在本示例中将它们显示为变量。 这是我的
我有这种结构的时间码 hh:mm:ss.SSS 我有一个自己的类,实现时间接口(interface)。它具有自定义字段 TimecodeHour 字段,允许小时值大于 23。我想用 DateTimeF
我有一个允许用户输入出生日期的表单: 即:4/16/40 然后,当用户处理表单时,有一个函数检查其长度,添加前导零,解析日期,然后使用 FormatDateTime 返回出生年份: strTemp :
我正在尝试使用 GWT 验证日期。对于大多数目的,使用下面的代码可以正常工作: boolean valid = true; try{ DateTimeFormat.getFor
在我的 ASP.NET MVC 项目的 global.asax.cs 的 Application_BeginRequest() 方法中有代码: Thread.CurrentThread.Current
在我的课上我有日期字段: @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime date; 我使用 DataTimeFor
我需要有关日期格式的帮助,我看不到我缺少的内容。 格式:EEEE d'th' 'of' MMMM yyyy hh:mm:ss a 日期:2016 年 4 月 6 日星期三 06:10:08 AM尝试过
我正在将一些依赖于 moment-timezone 的时间检查转换为使用 INTL.DateTimeFormat。 对于上下文,代码采用以毫秒为单位的用户当前时间 (Date.now()),并根据三个
您好,我尝试创建一个 Controller ,它将接受请求参数作为 LocalDateTime。 ex: /api/actions?page=0&size=10&from=2018-05-02T20:
我在使用 @DateTimeFormat 注释转换实际不存在的日期时遇到问题。 例如,当我设置日期 15/10/2017 时,我的实体中的注释如下: @Column(nullable = false)
我正在尝试使用 @DateTimeFormat 注释 LocalDateTime 对象为什么它不识别它? 我的主要想法是,一旦 Controller 接收到一个字符串,它就会将其转换为 LocalDa
我得到了使用 dateTimeFormat 函数的代码。最初的开发者使用了“MM-HH-YY-dd-NN”的掩码。此代码可在他的机器上运行。它适用于我们的测试服务器。但它在我的本地机器上不起作用。我只
代码: DateTimeFormat dateFormat = DateTimeFormat .getFormat("EEE MMM dd HH:mm:ss zzz y
我正在使用 Spring 3.1.1.RELEASE。我有一个模型,我提交给我的一个 Controller 。在其中,是以下字段 @DateTimeFormat(pattern = "#{appPro
我在 SpringBootApplication 中使用 @DateTimeFormat 时遇到问题。下面是我遇到问题的代码片段` package com.example.demo; import o
我在 SpringBootApplication 中使用 @DateTimeFormat 时遇到问题。下面是我遇到问题的代码片段` package com.example.demo; import o
在不同的服务器上部署 Web 应用程序时遇到问题。似乎有些不一致 DateTimeFormat模式,如 ShortDatePattern , 使用相同的文化 (pt-BR)。 在我的开发机器(安装了
昨晚我们将 Web 服务层从物理 Windows 2008 r2 迁移到虚拟 Windows 2012。 我们在日志中收到大量关于 DateTime 格式无效的事件,这很奇怪,因为我们仔细检查了我们的
https://jsfiddle.net/prd9Lz18/11 March 被返回了两次。有谁知道为什么?我现在正在使用不同的解决方案(带有月份名称的数组),但我真的很好奇为什么会这样,我觉得这不是
我是一名优秀的程序员,十分优秀!