Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Joda DateTime未给出预期结果_Java_Jodatime - Fatal编程技术网

Java Joda DateTime未给出预期结果

Java Joda DateTime未给出预期结果,java,jodatime,Java,Jodatime,给定2011年3月31日的DateTime对象和此代码: DateTime temp1 = new DateTime(2011, 3, 31, 12, 0, 0, 0); DateTime temp2 = temp1.plusMonths(1); DateTime temp3 = temp2.plusMonths(1); 行刑后 temp1 = 2011-03-31T12:00:00.000+02:00 temp2 = 2011-04-30T12:00:00.000+02:00 temp3 =

给定2011年3月31日的
DateTime
对象和此代码:

DateTime temp1 = new DateTime(2011, 3, 31, 12, 0, 0, 0);
DateTime temp2 = temp1.plusMonths(1);
DateTime temp3 = temp2.plusMonths(1);
行刑后

temp1 = 2011-03-31T12:00:00.000+02:00
temp2 = 2011-04-30T12:00:00.000+02:00
temp3 = 2011-05-30T12:00:00.000+02:00
这里的temp3是错误的


以上是正确的吗。我做错了吗?

不,这里没有错。您将两次添加一个月,这意味着第二次您将获得在添加第一个月的可能截断结果的基础上添加一个月的结果

4月只有30天,这就是为什么你要把4月30日作为
temp2
——把4月30日加上一个月,你就可以得到5月30日

如果您想在5月31日购买,请使用:

DateTime temp3 = temp1.plusMonths(2);

基本上,如果你试着从关联性等方面来考虑,日期和时间的算术。

不,这里没有错。您将两次添加一个月,这意味着第二次您将获得在添加第一个月的可能截断结果的基础上添加一个月的结果

4月只有30天,这就是为什么你要把4月30日作为
temp2
——把4月30日加上一个月,你就可以得到5月30日

如果您想在5月31日购买,请使用:

DateTime temp3 = temp1.plusMonths(2);
基本上,如果你试着从关联性等方面来考虑日期和时间算法,那么你为什么认为
temp3
是错误的?解释你的期望。为什么你认为
temp3
是错误的?解释你的期望。