递增在Groovy的日期得到一个不正确的日期
问题描述:
在我的Grails项目我有一个控制器中的日期,我需要通过1个月来增加这个日期,所以我做了如下:递增在Groovy的日期得到一个不正确的日期
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:MM:ss");
def temp
use (TimeCategory)
{
temp=new Date()+30.days//current date 6-1-2016
}
println(sdf.format(temp))
这是输出:
2016-02-36
我试过plus(30)
也给了我相同的结果。有没有办法做到这一点正确增量?
答
在Java日期格式中,D
代表“Day in Year”,因此代表6+30 = 36
。您希望将d
用于“月中的日期”。
您同时还使用Y
这是“周年”,而不是y
当你想m
这是分“年”和M
。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+0
Opps,我忘了完全审查这个,编辑后它工作正常。 – Sherif
答
我会用这种方法去:
Calendar calendar = Calendar.getInstance()
calendar.add(Calendar.DAY_OF_YEAR, 30)
或另一种方法是使用Joda Time
它工作正常,你确定它给你坏的结果? – Opal
是肯定确定 – Sherif
您正在使用哪个常用版本?你如何显示日期? – Opal