2022-01-01 关于日期格式化的YYYY 的坑。

简介: 传说日期格式化的YYYY会出问题,我一直都是这么写的呀,也没注意过。

跨年了,踩坑了,大家踩到没。


传说日期格式化的YYYY会出问题,我一直都是这么写的呀,也没注意过。


赶紧看看有没有问题。


前端使用 dayjs 进行日期格式化,于是看看效果:

_dayjs('2021-12-31').format('YYYY-MM-DD')
"2021-12-31"
_dayjs('2021-12-30').format('YYYY-MM-DD')
"2021-12-30"
_dayjs('2022-1-1').format('YYYY-MM-DD')
"2022-01-01"


大写的YYYY没有问题。


那么小写的呢?

_dayjs('2022-1-1').format('yyyy-MM-DD')
"yyyy-01-01"


dayjs 不支持yyyy,不过似乎支持gggg,我们来看一下效果。

_dayjs('2022-1-1').format('gggg-MM-DD')
"2022-01-01"
_dayjs('2021-12-31').format('gggg-MM-DD')
"2022-12-31"


dayjs 里面,小写的gggg 是有问题的,大家有没有用过?记得element-plus 的官网用过。


再来看看“年周”的情况。

_dayjs('2022-1-1').format('gggg-ww')
"2022-01"
_dayjs('2022-1-1').format('YYYY-ww')
"2022-01"


一月一日周六,应该算是去年的周吧,今年的第一周不是应该从一月二日开始算吗?哎,这个一年的第一周到底怎么算?

_dayjs('2021-12-31').format('gggg-ww')
"2022-01"
_dayjs('2021-12-31').format('YYYY-ww')
"2021-01"


年底的年周,YYYY肯定有问题,怎么算也不能算作2021年的第一周。


gggg有没有问题呢?去年的最后一个(不完整)的周算作今年的第一周吗?


似乎小写的 gggg-ww 算年周好像是对的,但是不确定。


谁知道一年的第一周到底怎么算?


相关文章
|
5月前
|
存储 安全 Java
使用SimpleDateFormat进行日期格式化
使用SimpleDateFormat进行日期格式化
|
7月前
|
前端开发 Java
关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换
关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换
101 0
还在用 SimpleDateFormat 做时间格式化?小心项目崩掉
SimpleDateFormat.parse() 方法的线程安全问题 错误示例 非线程安全原因分析 解决方法
|
NoSQL Java Redis
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
526 0
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
|
Java
LocalDateTime序列化成yyyy-MM-dd HH:mm
LocalDateTime序列化成yyyy-MM-dd HH:mm
249 0
使用 SimpleDateFormat 格式化日期
使用 SimpleDateFormat 格式化日期
136 0
有关日期格式化的问题
有关日期格式化的问题
107 0
DateTimeFormatter日期格式化
DateTimeFormatter日期格式化
|
Java API
日期格式化使用 YYYY-MM-dd 的潜在问题
日期格式化使用 YYYY-MM-dd 的潜在问题
166 0
日期格式化使用 YYYY-MM-dd 的潜在问题
|
C# 数据中心
C# 日期格式化常用
常用日期帮助使用 C# DateTime日期格式化 C# DateTime与时间戳转换 不同运行环境日期统一 1、CultureInfo的InvariantCulture的作用 (1)、CultureInfo使整个.NET Framework更加人性化,因为这可以使同一个数据适应不同地区和文化,这样当然满足处于不同地区和文化的用户。
1257 0