1. Windows command "date" and "time" can change system time.
2. Run OS command in java
/**
* Created by learner on 2005-06-07.
*/
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
/**
* This class changes the system date five days forword automatically
* every 90 seconds. The system time is 500 days forward when the
* program is terminated.
*/
public class DateModification {
private static final int DATE_INTERVAL = 5;
private static final String WIN_PATH = "/C";
private static final String COMMAND = "date";
private static final String DATE_FORMAT = "yyyy-MM-dd";
public void setSystemTime() {
String cmdArgValue = null;
String[] commandLine = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FORMAT);
Calendar rightNow = null;
Date dateNow = null;
Date dateLater = null;
Process process = null;
for (int i=0; i<100; i++) {
rightNow = Calendar.getInstance();
dateNow = rightNow.getTime();
dateLater = new Date();
// Three days later.
dateLater.setTime(
dateNow.getTime() + 1000 * 60 * 60 * 24 * DATE_INTERVAL);
cmdArgValue = new String(simpleDateFormat.format(dateLater).toString());
System.out.println(cmdArgValue);
try {
commandLine = new String[4];
commandLine[0] = "cmd.exe";
commandLine[1] = WIN_PATH;
commandLine[2] = COMMAND;
commandLine[3] = cmdArgValue;
// Sleep for 90 seconds.
Thread.currentThread().sleep(90000);
process = Runtime.getRuntime().exec(commandLine);
/*
Process p= Runtime.getRuntime().exec(
"cmd.exe /c start http://www.cityforest.com"); //Access website
Process p= Runtime.getRuntime().exec("cmd.exe /c start ping 10.144.98.100"); //Ping
*/
} catch (IOException ioe) {
System.out.println(ioe.getMessage());
} catch (InterruptedException ie) {
System.out.println(ie.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
public static void main(String args[]) throws Exception {
new DateModification().setSystemTime();
}
}