如何在日期解析字符串上添加一天?

时间:2018-02-23 14:14:52

标签: groovy

我正在尝试为我的子字符串文本添加一天,我已将其解析为日期但未正确显示。

以下是代码:

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

当我为两个defs,原始日期和我希望第二天的未来日期做两个日志时,我会收到此输出:

日志:

log.warn dateTimeDate
log.error futureDateTimeDate

输出:

2018-02-23
2018-02-231

如何让它工作,以便输出:2018-02-24而非2018-02-231

2 个答案:

答案 0 :(得分:2)

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

对此,我想补充一点,如果您使用的是Java 8,则可以使用其新的日期/时间API作为java.util.Date的替代方法,这可能会有问题(即使除了混合之外)格式字符串中的'和'M'。

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

答案 1 :(得分:1)

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

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(分钟)。