日期格式化使用 YYYY-MM-dd 的潜在问题

简介: 日期格式化使用 YYYY-MM-dd 的潜在问题

昨天在v站上看到这个关于YYYY-MM-dd的使用而出现Bug的帖子(v2ex.com/t/633650)非常有意思,所以拿过来分享一下。

在任何编程语言中,对于时间、数字等数据上,都存在很多类似这种平时一切OK,特定时间、特定环境出问题的情况。出现这种问题的根本原因还是我们对于各种数据结构的细节定义在开始的时候都不太注意,都是从每一次使用问题出现之后才开始有了“刻骨铭心”的认识。

不论昨天你是否也经历了这样的Bug,还是没有经历的读者,希望看到这篇文章之后,对这个细节可以上点心,避免日后因为这个细节而犯错。

下面就来一起看看这个问题的表现和原因吧:

问题表现

image.png

BUG 的原因

YYYYweek-based-year,表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。所以2019年12月31日那天在这种表述方式下就已经 2020 年了。

而当使用yyyy的时候,就还是 2019 年。

相关说明

目录
相关文章
|
数据采集 算法 Java
Java 正则表达式【匹配与分组基本原理】
Java 正则表达式【匹配与分组基本原理】
|
JavaScript
ElementUI的el-dialog弹窗修改设置可拖拽可最大化
该方案通过自定义Vue指令实现ElementUI的`el-dialog`弹窗的拖拽和最大化功能。只需在`main.js`中引入并注册指令,然后在Vue组件中绑定指令即可。支持自定义参数控制是否允许最大化和拖拽,并提供最大化后的回调函数。具体使用方法详见示例代码。
2486 0
ElementUI的el-dialog弹窗修改设置可拖拽可最大化
|
JSON 数据格式
成功解决:Vscode中切换table页面会自动覆盖上一个问题
这篇文章分享了作者在VSCode中遇到的一个问题,即在切换Tab页面时原先的页面被自动覆盖,并通过修改设置`workbench.editor.enablePreview`解决了这个问题,使得点击文件时不再覆盖当前页面。
成功解决:Vscode中切换table页面会自动覆盖上一个问题
|
关系型数据库 数据库 数据安全/隐私保护
在 Postgres 中使用模式
【8月更文挑战第11天】
723 0
在 Postgres 中使用模式
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的个人博客系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的个人博客系统附带文章源码部署视频讲解等
127 0
|
Web App开发 关系型数据库 Java
|
JSON 前端开发 Java
SpringBoot 日期&时间格式化处理
SpringBoot 日期&时间格式化处理
911 0
QGS
|
SQL Oracle Java
(linux-x86-ARM)麒麟V10安装DBeaver21.3通用的数据库管理工具和 SQL 客户端
记(linux-x86-ARM)麒麟V10安装DBeaver21.3通用的数据库管理工具和 SQL 客户端
QGS
1756 1
(linux-x86-ARM)麒麟V10安装DBeaver21.3通用的数据库管理工具和 SQL 客户端
|
JavaScript
VUE系列——使用ElementUI的table表格重构穿梭框
VUE系列——使用ElementUI的table表格重构穿梭框

热门文章

最新文章