Groovy 如何在日期解析字符串中添加日期?

Groovy 如何在日期解析字符串中添加日期?,groovy,Groovy,我正试图做一个简单的添加一天到我的子字符串文本,我已经解析成一个日期,但它没有正确显示 代码如下: def dateTimeDate = Date.parse("yyyy-mm-dd", textfromjson.substring(0,10)).format("yyyy-mm-dd") def futureDateTimeDate = dateTimeDate + 1 当我为两个DEF做两个日志时,即原始日期和我希望在第二天成为的未来日期,我会收到以下输出: 日志: 输出: 2018-02-

我正试图做一个简单的添加一天到我的子字符串文本,我已经解析成一个日期,但它没有正确显示

代码如下:

def dateTimeDate = Date.parse("yyyy-mm-dd", textfromjson.substring(0,10)).format("yyyy-mm-dd")
def futureDateTimeDate = dateTimeDate + 1
当我为两个DEF做两个日志时,即原始日期和我希望在第二天成为的未来日期,我会收到以下输出:

日志:

输出:

2018-02-23
2018-02-231

我如何才能让它工作,使其输出:
2018-02-24
而不是
2018-02-231

您正在将字符串解析为日期,然后将其格式化为字符串。添加到日期对象,而不是字符串对象

def dateTimeDate = Date.parse("yyyy-mm-dd", textfromjson.substring(0,10))
def futureDateTimeDate = dateTimeDate + 1

log.warn dateTimeDate.format("yyyy-MM-dd")
log.error futureDateTimeDate.format("yyyy-MM-dd")

还请注意,您可能希望使用
MM
(一年中的一个月)而不是
MM
(小时中的一分钟)。

您正在将字符串解析为日期,然后将其重新格式化为字符串。添加到日期对象,而不是字符串对象

def dateTimeDate = Date.parse("yyyy-mm-dd", textfromjson.substring(0,10))
def futureDateTimeDate = dateTimeDate + 1

log.warn dateTimeDate.format("yyyy-MM-dd")
log.error futureDateTimeDate.format("yyyy-MM-dd")

还请注意,您可能希望使用的是
MM
(一年中的一个月)而不是
MM
(一小时中的一分钟)。

发布的答案已经正确地指出,日期值在格式化回字符串之前需要递增

除此之外,我想补充一点,如果您使用的是Java 8,您可以使用其新的日期/时间API作为Java.util.Date的替代品,这可能会有问题(甚至除了在格式字符串中混淆“m”和“m”)


发布的答案已经正确地指出,在将日期值重新格式化为字符串之前,日期值需要递增

除此之外,我想补充一点,如果您使用的是Java 8,您可以使用其新的日期/时间API作为Java.util.Date的替代品,这可能会有问题(甚至除了在格式字符串中混淆“m”和“m”)

import java.time.*
def future = LocalDate.parse(textfromjson.substring(0,10)) + Period.ofDays(1)