JavaScript 作为一门通用编程语言,在 Web 开发中极为常用。在很多场合下,我们需要输出日期,但是不同地区对于日期格式有不同的需求,如该使用 DD/MM/YYYY
还是 MM/DD/YYYY
,该不该显示时间,如何将本地时间转换为 UTC 时间等等。为了解决这些问题,ES12 新增了 Intl.DateTimeFormat,提供了更方便、可定制的日期格式化方法。
简要说明
Intl.DateTimeFormat 可以按照用户的本地化方式来格式化日期,也支持指定格式,例如月日年还是年月日等。DateTimeFormat 提供了可自定义的选项,例如日期和时间格式、地区和时区。比如,下面的代码表示在中国上海使用中文来输出当前时间。
-- -------------------- ---- ------- ----- ------- - - ------- ------ --------- ---------------- -------- ------- ------------ ----- ---------- ------ ------- ---- --------- -- --------------- ----------------------------------------- -------------------
输出:公元2022年12月7日星期三
长格式详解
在上面的代码中,options 是自己定义的参数对象,其属性包括:
- hour12 24小时制还是12小时制
- timeZone 时区
- weekday 星期几(完整格式,长格式)
- era 时间轴(比如公元)
- year 年份
- month 月份
- day 天数
其中 weekday, era, month 等传入的都是样式参数,每个参数也有一些可选样式值,如:
- weekday: long、short、narrow 等;
- year: numeric、2-digit 等;
- month: long、short、narrow(最短)
在代码中 Intl.DateTimeFormat('zh-CN-u-ca-chinese', options)
通过 'zh-CN-u-ca-chinese' 指定使用中国大陆的语言和中国农历的时间标识,'u' 表示开启扩展格式,让日历拥有范围更广泛的用户自定义日期和时间字段,'ca' 表示使用特定的日历系统。
在 options 中,我们设定了使用了24小时制、中国上海时区、用中文输出当前完整格式星期、公元、年、月、日。
示例代码
下面是一个简单的示例代码,演示如何使用 Intl.DateTimeFormat 格式化日期,其中包含了设置时区、设置语言、设置时钟制式、设置星期几等福利。
-- -------------------- ---- ------- -- ---------- ----- ---- - --- ------- -- --- --------------------------- ---------------- --------------------------- -- ------------------ ----- ------- - - --------- --------------- -- ------------------------------------------------ ------------ -- -------- ----- ------- - - ------- ------ --------- ---------------- -------- ------- ------------ ----- ---------- ------ ------- ---- --------- -- --------------------------- ----------------------------------------- --------------------- -- -------- ----- ------- - - ------- ------ --------- ------------------- -------- ------- ----- ---------- ------ ------- ---- --------- -- --------------------------- ---------------------------- ---------------------
输出:
UTC 格式:2022-12-07T15:39:50.015Z 当前时区:2022/12/7 下午11:39:50 展示中文日期格式:公元2022年12月7日星期三 展示英文日期格式:Wednesday, December 7, 2022
总结
Intl.DateTimeFormat 为我们提供了强大的日期格式化方法,可以满足不同国家和地区对于日期格式的需求。开发者可以使用该方法,为用户提供更便捷、易读的输出。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/659fe0bbadd4f0e0ff85b066