在groovy中添加几个月的日期不起作用

时间:2018-06-06 09:57:39

标签: groovy timecategory

在下面的代码中,只有年份会添加到我的日期。几个月没有增加。

{{1}}

1 个答案:

答案 0 :(得分:0)

您在此处使用的格式:

licenseDate.format('mm/dd/yyyy')

表示(minute in hour)/(day of month)/(year)。它应该是

licenseDate.format('MM/dd/yyyy')

相反,因为MM代表一年中的月份。您负责添加年份和月份的代码是正确的,您只会错过格式化并以正确的格式显示日期。

看看下面的例子:

import groovy.time.TimeCategory

def calculateLicense(Date bd, int yr, int mon = 0) {
  use(TimeCategory) {
    Date licenseDate = bd + yr.years + mon.months
    println "License date:" + licenseDate.format('MM/dd/yyyy')
  }
}

calculateLicense(Date.parse("yyyy-MM-dd", "2018-06-06"), 2, 3)
calculateLicense(Date.parse("yyyy-MM-dd", "2018-06-06"), 2)

输出:

License date:09/06/2020
License date:06/06/2020