java设置/同步Linux系统时间
在网上看了很多,试了很多,不知道是他们的环境不同还是啥原因,很少成功
下面我就把我的测试成功的代码贴出来,让同行们少走弯路,如果实验不成功,可以给我留言 我帮助你测试
功能介绍:java程序通过jvm执行linux命令来完成服务器时间同步
代码:
//需要同步的时间
String synTime ="-08-08 08:08:08";
//同步日期 格式 YYYY-MM-DD 也可以是 YYYYMMDD格式这里是 -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);
}