[英]Java code to compare date and time of an application with the system
[英]Code snippet to change system date and time in java
我有一個更改系統日期和時間的要求,並且我知道將在命令提示符下執行此工作的“ date -s”命令。 但是,當我嘗試在Java代碼中添加相同的命令時,它似乎不起作用。 以下是我希望它能正常工作的代碼行:
String value = "2015-04-12 20:26:14";
Date date = dateFormat.parse(value);
value = dateFormat.format(date);
System.out.println("for debugging");
final Process dateProcess = Runtime.getRuntime().exec("cmd /c date "+value.substring(0, value.lastIndexOf(' ')));
System.out.println("step 1");
dateProcess.waitFor();
System.out.println("step 2");
dateProcess.exitValue();
final Process timeProcess = Runtime.getRuntime().exec("cmd /c time "+value.substring(value.lastIndexOf(' ')+1));
timeProcess.waitFor();
timeProcess.exitValue();
當我以管理員身份執行上述代碼段時,該程序掛在dateProcess.waitFor();上。 線。
請建議我采取糾正措施以使其正常工作。
您似乎在日期和時間命令中缺少-s參數,因此您的waitFor()方法永遠不會返回,因為它正在等待用戶輸入。
嘗試改變
final Process dateProcess = Runtime.getRuntime().exec("cmd /c date "+value.substring(0, value.lastIndexOf(' ')));
至
final Process dateProcess = Runtime.getRuntime().exec("cmd /c date -s "+value.substring(0, value.lastIndexOf(' ')));
與您的時間命令相同。 (假設這僅是Windows)。
代碼缺少“開始”,因此從未調用命令提示符
最終處理dateProcess = Runtime.getRuntime()。exec(“ cmd / c開始日期-s” + value.substring(0,value.lastIndexOf('')));
添加“開始”后,我得到了預期的結果。
感謝您的幫助,干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.