4 回答
TA贡献1835条经验 获得超7个赞
看看时间类别
import groovy.time.TimeCategory def theDate = use(TimeCategory){new Date() + 90.days}.format('yyyy-MM-dd HH:mm:ss.S')
TA贡献1784条经验 获得超9个赞
以下是您如何以更 Groovy 风格编写 Java 示例。
// you can assemble aggregate types by left shifting the aggregates
// I'm not endorsing this approach, necessarily, just pointing it out as an alternative
ZonedDateTime now = LocalDate.now() << LocalTime.now() << ZoneId.of('Africa/Bamako')
// the plus operator is overloaded
ZonedDateTime in90Days = now + 90
// you can pass a String to format without needed a full DateTimeFormatter instance
println in90Days.format('uuuu-MM-dd HH:mm:ss.S')
TA贡献1828条经验 获得超3个赞
虽然 Groovy 为旧的 JavaDate类添加了一些进一步的支持,但我仍然认为您不应该使用它。它的设计一直很糟糕,现在已经过时了。请改用现代 Java 日期和时间 API java.time。很抱歉,我必须信任您来翻译 Java 代码。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.S");
ZonedDateTime now = ZonedDateTime.now(ZoneId.of("Africa/Bamako"));
ZonedDateTime in90Days = now.plusDays(90);
System.out.println(in90Days.format(formatter));
刚才运行时的输出是:
2020-01-01 08:37:13.3
如果不是非洲/巴马科,请替换您所需的时区。
TA贡献1936条经验 获得超6个赞
您可以使用日历来实现这一点
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DATE, 90);
Date date = cal.getTime();
所有步骤必须分开,不能在一行中。
添加回答
举报