java同步/设置Linux系统时间

java设置/同步Linux系统时间

在网上看了很多,试了很多,不知道是他们的环境不同还是啥原因,很少成功

下面我就把我的测试成功的代码贴出来,让同行们少走弯路,如果实验不成功,可以给我留言 我帮助你测试

功能介绍:java程序通过jvm执行linux命令来完成服务器时间同步

代码:

//需要同步的时间

String synTime ="2014-08-08 08:08:08";

//同步日期 格式 YYYY-MM-DD 也可以是 YYYYMMDD格式 这里是 2014-08-08

String cmd = " date -s " +sysTime.substring(0, 10);

//System.out.println(">>>>>>>>>>>>>>>>>>syn sys time >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>cmd 1>>>>>>>>>>>>>>>>>>>>>>>>>>"+cmd);

Runtime.getRuntime().exec(cmd);

//同步时间 格式 HH:mm:ss

cmd = " date -s "+sysTime.substring(11,sysTime.length());

//System.out.println(">>>>>>>>>>>>>>>>>>syn sys time >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>cmd 2>>>>>>>>>>>>>>>>>>>>>>>>>>"+cmd);

Runtime.getRuntime().exec(cmd);

//查询同步后的时间

Process proc =Runtime.getRuntime().exec("date");

BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));

String nowTime= null;

//输出操作结果

while ((nowTime= br.readLine()) != null) {

System.out.println(">>>>>>>>>>>>>>>>>>setLinuxTime>>>>>>>>>>>>>success>>>>>>>>>>new time>>>>>>>>>>>>>>"+nowTime);

}