2016-01-06 69 views
0

在我的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)也给了我相同的结果。有没有办法做到这一点正确增量?

+0

它工作正常,你确定它给你坏的结果? – Opal

+0

是肯定确定 – Sherif

+0

您正在使用哪个常用版本?你如何显示日期? – Opal

回答

1

在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

0

我会用这种方法去:

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

或另一种方法是使用Joda Time