Joda time踩坑-new DateTime格式化问题

今天遇到这样一个代码:

1
new DateTime("20231013").plusDays(1).toString("yyyy-MM-dd")

输出是什么?

预期输出:2023-10-14,实际输出:

不对,输出样式完全对不上。

换一种写法。

1
new DateTime("2023-10-13").plusDays(1).toString("yyyy-MM-dd")

这样就对了。

好像有点看出来了。第一个-前面的值当做年处理。

做个测试

1
new DateTime("20231013-10-13").plusDays(1).toString("yyyy-MM-dd")

可以确定,new DateTime 的入参是有个格式要求的。

全景:

1
2
3
<em>log</em>.info( new DateTime("20231013").plusDays(1).toString("yyyy-MM-dd"));
<em>log</em>.info( new DateTime("2023-10-13").plusDays(1).toString("yyyy-MM-dd"));
<em>log</em>.info( new DateTime("20231013-10-13").plusDays(1).toString("yyyy-MM-dd"));

后记

new DateTime 没有格式化入参的构造方法,使用时要注意格式化失败的问题。