`

YYYY-MM-DD 的锅,服务端去背!

阅读更多

写这篇博文是记录下跨年的bug。作者:兔子托尼啊 链接:https://zhuanlan.zhihu.com/p/101150248

去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误。

当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据。

今天逛技术论论坛正好遇到Java日期的操作bug。

1 yyyy 和 YYYY

别看字,看代码

输出结果:

细心的同学应该发现了2019-12-31用YYYY/MM/dd 此刻变成了2020/12/31

??为何呢?

YYYY这么大的能耐,能跑到2020年代去?

我2019年底买的东西,你如果用YYYY来格式化出库日期,我是不是得到2020年底才能收到货?此bug问题挺大的呀!

YYYY 到底是何方妖怪?

分享到:
评论

相关推荐

    前端开源库-date-utils

    1. **日期格式化**:提供了多种格式化日期的方法,可以将日期对象转换为各种常见格式,如"YYYY-MM-DD","MM/DD/YYYY","HH:mm:ss"等,满足不同场景下的需求。 2. **日期解析**:库内包含了解析字符串到日期对象的...

    海康威视智慧园区管理平台-园区一脸通-人员信息接口

    - **firstWorkingTime**:String类型,必填,首次入职时间,格式为`YYYY-MM-DD`。 - **enterTime**:String类型,必填,入职时间,格式为`YYYY-MM-DD`。 - **formalEmpTime**:String类型,必填,转正时间,格式...

    redis-5.0.4.tar.gz下载及redis安装过程

    解决: date -s ' yyyy-mm-dd hh:mm:ss ' 重写时间 再 clock -w 写入cmos 5: 可选步骤: make test 测试编译情况 (可能出现: need tcl >8.4这种情况, yum -y install tcl ) 6: 安装到指定的目录,比如 /usr/...

    后台日期类型转json字符串传到页面

    5. **在对象上使用注解**:对于某些库,比如Jackson,可以在日期字段上添加注解`@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")`来控制序列化时的日期格式。 无论选择哪种方法,关键在于理解JSON序列化过程中日期的...

    springboot DTO字符字段与日期字段的转换问题

    这样,当我们在服务端响应结果时,生日字段将被格式化为日期类型,即“yyyy-MM-dd”格式。 另外,我们也可以通过配置文件来设置日期格式化。例如,在 application.properties 文件中添加以下配置: ```properties ...

    PowerExchange9.1服务端安装部署

    `export NLS_DATE_FORMAT=YYYY-MM-DD` `export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:.` `export PATH=/oracle/product/10.2.0/db_1/bin:/oracle/product/10.2.0/db_1/OPatch:$PATH:/oracle/product/10.2.0/...

    阿里云CDN服务-API手册-D.docx

    * Version:API版本号,为日期形式:YYYY-MM-DD,本版本对应为2014-11-11。 * AccessKeyId:阿里云颁发给用户的访问服务所用的密钥ID。 * Signature:签名结果串,关于签名的计算方法,请参见签名机制。 * ...

    接口文档示例-cms大数据分析接口

    - 日期格式:日期参数的格式通常为"yyyy-MM-dd HH:mm:ss",除非接口有特殊规定。 3. 接口描述 - **总体监控查询接口** - 方向:CMS -> PC、Mobile - 功能:CMS系统查询并处理数据库中的数据,然后将其组装成可读...

    淘宝开放接口API解释,主动通知业务(开发者参考文档)

    时间戳,可以采用毫秒的`Long`值或以下日期格式之一:`yyyy-MM-dd`、`yyyy-MM-dd HH:mm:ss.SSS`、`yyyy-MM-dd HH:mm:ss`。 #### 参数说明 - **app_key**:调用方的应用标识,确保每次请求都能被正确识别。 - **...

    json返回date类型转为字符串.docx

    Moment.js 提供了多种日期格式,例如 `YYYY-MM-DD`、`YYYY/MM/DD`、`DD MMM YYYY` 等等。 在AJAX请求中将 Date 对象转换为字符串 在 AJAX 请求中,我们需要将日期对象转换为字符串,以便于将其作为参数传递给...

    下级站点对接API支付接口说明文档18

    - pay_applydate:提交时间,时间格式为“YYYY-MM-DD HH:MM:SS”,必填且参与签名。 - pay_bankcode:银行编码,参考银行编码列表,必填且参与签名。 - pay_notifyurl:服务端通知地址,POST方式返回数据,必填。...

    八种风格的时间日期.rar

    7. **数据库存储格式**:数据库系统通常以整数或字符串形式存储日期时间,如MySQL的"YYYY-MM-DD HH:MM:SS"。 8. **XML/JSON格式**:在XML和JSON数据交换中,时间日期常被表示为字符串,如XML的"<date>2022-09-15T14...

    AFTIII架设教程

    在配置过程中,可能还需要更改日期格式为`YYYY-MM-DD`格式,确保数据的一致性和正确性。 ### 深入理解 #### 1. **DBC2000介绍** DBC2000是一款针对InterBase和Firebird数据库系统的管理工具,主要应用于Windows...

    开发笔记API.md

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); mapper.setDateFormat(dateFormat); try { reuqest = mapper.writeValueAsString(obj); } catch (JsonProcessingException e) { e....

    03 datatables分页查询1

    return moment(data).format('YYYY-MM-DD HH:mm'); } }, // 其他列定义 ] ``` 在这个例子中,`moment.js` 库用于格式化日期。 总之,Datatables 结合 AJAX 能够轻松实现复杂的表格功能,如分页查询。通过理解和...

    易酷支付API开发文档说明1

    - `pay_applydate`:提交时间,必须提供且参与签名,格式为`YYYY-MM-DD HH:MM:SS`。 - `pay_bankcode`:银行编码,必须提供且参与签名,参考后续银行编码列表。 - `pay_notifyurl`:服务端通知地址,必须提供且...

    各种工具类

    `MyDateUtils` 类可能包含了对日期进行格式化、比较、加减操作的方法,如将日期字符串转化为`java.util.Date`对象,或将日期对象转换为用户友好的显示格式(如"yyyy-MM-dd HH:mm:ss")。这在日志记录、报表生成或...

    下级站点对接API支付接口说明文档11

    - `pay_applydate`: 提交时间,格式为`YYYY-MM-DD HH:MM:SS`,必须提供。 - `pay_bankcode`: 银行编码,参考后续说明,必须提供。 - `pay_notifyurl`: 服务端通知地址,POST返回数据,必须提供。 - `pay_callbackurl...

    Redis基础配置笔记

    - 解决方案:通过 `date -s 'yyyy-mm-dd hh:mm:ss'` 修改系统时间为正确的日期时间,并使用 `clock-w` 写入CMOS。 4. **测试编译情况**(可选): - 执行 `make test` 测试编译情况。 - 如遇到需要TCL版本高于...

Global site tag (gtag.js) - Google Analytics