我一直在嘗試將系統時間提前三小時,然後回到默認值,但我似乎沒有得到我想要的時間。不是cal.setTimeZone(TimeZone.getTimeZone(「America/Los_Angeles」));假設將時間設置爲America/Los_Angeles Timezone?更改系統時間提前三小時,然後回到默認
public static void changeSystemTime() throws Exception {
DateFormat dateFormat = new SimpleDateFormat("HH:mm");
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"));
System.out.println("Current time is " + dateFormat.format(cal.getTime());
cal.add(Calendar.HOUR_OF_DAY, 3);
System.out.println("3 Hours from now is " + dateFormat.format(cal.getTime());
Runtime runtime = Runtime.getRuntime();
runtime.exec("cmd /c Time " + dateFormat.format(cal.getTime()));
}
public static void changeSystemTimeToDefault() throws Exception {
DateFormat dateFormat = new SimpleDateFormat("HH:mm");
Date date = new Date();
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"));
System.out.println("Timezone for LA is " + dateFormat.format(cal.getTime());
Runtime runtime = Runtime.getRuntime();
runtime.exec("cmd /c Time " + dateFormat.format(cal.getTime()));
}
問題的標題說,接下來2小時但在您的實際問題,它說3? –
對不起,我只是編輯它 – Gnawk
僅供參考,如果您僅僅是爲了測試目的而更改計算機時鐘,請注意新的[java.time。*包](http://download.java.net/ Java 8中的jdk8/docs/api/java/time/package-summary.html)提供了傳遞自定義[Clock](http://download.java.net/jdk8/docs/api/java/time/Clock。 html)對象。該自定義時鐘可以提供僞造的日期時間值,用於模擬數據進行測試。 –