强制JVM以不同于机器时间的日期开始



我使用spring-boot和@schedule来安排一些cron作业在特定时间启动;然而,我想写一些代码,以便能够在我的春季启动应用程序中操作日期和时间,以测试cron作业是否会被触发,我知道我可以通过更改机器(OS(日期来做到这一点,但我希望通过我的应用程序启动来做到。我记得我在什么地方见过它,但我再也找不到了。

@EnableScheduling
@SpringBootApplication
public class MainApplication {

public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
}

您将无法在JVM中更改系统时间。您有两个选项要测试。

  1. 堆栈溢出线程以更改Java代码中的系统时间。这也会更改您的机器时间。如何在Java中设置系统时间?

  2. 堆栈溢出线程测试调度注释如何测试Spring@Scheduled

您可以使用System.setProperty((方法更改应用程序的时区。以下是示例。

System.setProperty("user.timezone","Asia/Kolkata"(;

最新更新