日期格式化 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小时制
在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值