在Groovy中增加日期会得到错误的日期

时间:2016-01-06 19:09:34

标签: groovy

在我的Grails项目中,我在控制器中有一个日期,我需要将此日期增加一个月,所以我做了如下:

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)也给了我同样的结果。有没有办法正确地进行这种增量?

2 个答案:

答案 0 :(得分:1)

在Java日期格式中,D代表"年中的日期",因此6+30 = 36。您希望将d用于"日期和#34;。

您还在使用Y,这是"周年"而不是y,这是"年"如果您需要M,可以m分钟。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

答案 1 :(得分:0)

我采用这种方法:

Calendar calendar = Calendar.getInstance()
calendar.add(Calendar.DAY_OF_YEAR, 30)

或其他方法是使用Joda Time