我使用此代码在修复时间内执行Job。
private static final ZoneId zone = ZoneId.systemDefault();
private static final ZonedDateTime zonedDateTime = ZonedDateTime.now(zone);
@Scheduled(cron = "0 0 0 * * *")
public void PaymentTransactionsDailyFactsScheduler() throws Exception {
.......
DateTimeFormatter format = DateTimeFormatter.ofPattern("MMM d yyyy hh:mm a");
String time = zonedDateTime.format(format);
System.out.printf("Job Scheduler executed (%s, (%s))\n", time, zone);
}
但是每次我得到Job Scheduler executed (Apr 13 2019 03:41 PM, (Europe/Germany))
您知道为什么时间每次都完全相同吗?可能我需要删除最终版吗?
答案 0 :(得分:3)
在初始化类时,仅创建一次ZonedDateTime
对象。
如果希望执行该方法的当前时间,请在该方法的内部中创建它。