2016-01-06 65 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