日期格式化 yyyy-mm-dd 与 YYYY-MM-DD 大小写区别

前言:最近开发遇到日期格式化的问题,发现用 hh:mm:ss 格式化出来的时间是12小时制的。

就想看看这个格式化字符串的大小写 有什么区别,下面是一些示例,(dateToFormat中是封装的 momentjs 库中formate方法)

const text = '2024-04-25 12:30:45'
console.log('YYYY-MM-DD HH:MM:SS', dateToFormat(text, 'YYYY-MM-DD HH:MM:SS'));
console.log('yyyy-mm-dd hh:mm:ss', dateToFormat(text, 'yyyy-mm-dd hh:mm:ss'));
console.log('yyyy-MM-dd HH:mm:ss', dateToFormat(text, 'yyyy-MM-dd HH:mm:ss'));
console.log('yyyy-MM-dd hh:mm:SS', dateToFormat(text, 'yyyy-MM-dd hh:mm:SS'));
console.log('yyyy-MM-DD HH:mm:ss', dateToFormat(text, 'yyyy-MM-DD HH:mm:ss'));

结果:

在这里插入图片描述
可以看到,大小写是会对格式化结果产生影响的。后续查阅资料,总结出以下规则:

以下主要针对moment.js 库中的 formate 方法。
参考官方文档:
https://momentjs.com/docs/#/displaying/

YYYY 与 yyyy

这里前端用momentjs 的方法 实验看起来没啥区别,但是在JAVA中是区分大小写的。

不过在momentjs库中,只有以下这些表示格式的,没有 yyyy的格式,YYYY就表示我们正常理解的年份(不过好像yyyy 也能用,目前没发现啥问题,不过还建议是用官方的YYYY比较好)
在这里插入图片描述



这里补充一下JAVA的解释:

  • yyyy: 格里历(公历),表示当天所在的年
  • YYYY:代表是week in which year(JDK7之后引入的概念),为 ISO 周日历,意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的YYYY就是下一年。

所以一般JAVA开发中还是用yyyy-MM-dd来做日期格式化



不同位数有啥区别呢?

可以看到 示例中可以用 YY 或者 YYYY
分别表示简写和全写,比如
YYYY / YY 分别显示为 2024 / 24

MM 与 mm

这里的大小写是为了区分 日期的 “月份” 与 时间的 “分钟” .

MMMM/MMM/MM/M 显示为 四月/4月/04/4
(4个M显示全称,3个M显示缩写,中文显示是汉字四和数字4,英文就是January和Jan)
在这里插入图片描述

全部示例:
在这里插入图片描述

分钟 只有 m / mm, 位数用于展示前导0的。

在这里插入图片描述

DD 与 dd

momentjs 中:
DD 是 表示月份中的第几天数
DDD 则 表示 一年中的第几天
dd 表示的是周中的天数,比如周几

具体如下图:
在这里插入图片描述

HH 与 hh

这里大小写是为了区分12小时制和24小时制
HH 表示24小时制
在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 14:52:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 14:52:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 14:52:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 14:52:04       20 阅读

热门阅读

  1. scipy.sparse.lil_matrix

    2024-04-26 14:52:04       18 阅读
  2. 创始人内容:个人及家族的各个事业。

    2024-04-26 14:52:04       20 阅读
  3. 富格林:安全落实防备诱导欺诈建议

    2024-04-26 14:52:04       27 阅读
  4. 【设计模式】使用策略模式优化表单校验逻辑

    2024-04-26 14:52:04       20 阅读