我正在尝试为我的子字符串文本添加一天,我已将其解析为日期但未正确显示。
以下是代码:
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
答案 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
(分钟)。