Java Windows系统 时间同步

虚拟机系统的时间总是不对,每次都要修改时间,很麻烦,所以写了个简单的同步时间的代码,windows有效,linux可以自己查命令,修改命令即可:

系统环境:

系统: Windows32

JDK版本:jdk1.6.45

开发工具:eclipse

package com.siqi;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

public class OSTime {

    public static void main(String[] args) throws MalformedURLException, IOException, ParseException,
            InterruptedException {

        System.out.println("开始访问百度服务器:http://www.baidu.com");
        URLConnection conn = new URL("http://www.baidu.com").openConnection();
        String dateStr = conn.getHeaderField("Date");
        System.out.println("获取到的服务器时间:" + dateStr);

        // 解析为北京时间:GMT+8
        DateFormat httpDateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.US);
        httpDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        Date date = httpDateFormat.parse(dateStr);
        System.out.println("解析成北京时间格式:" + date);

        // 解析成简洁的日期格式
        DateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
        dateTimeFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        System.out.println("解析成标准时间格式:" + dateTimeFormat.format(date));

        // 取日期
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
        dateTimeFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        String currDate = dateFormat.format(date);

        // 设置Windows系统日期
        Process exec = Runtime.getRuntime().exec("cmd /c date " + currDate);
        if (exec.waitFor() == 0) {
            System.out.println("设置系统日期成功:" + currDate);
        } else {
            System.out.println("设置系统日期失败:" + currDate);
        }

        // 取时间
        DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss", Locale.US);
        timeFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        String currTime = timeFormat.format(date);

        // 设置Windows系统时间
        exec = Runtime.getRuntime().exec("cmd /c time " + currTime);
        if (exec.waitFor() == 0) {
            System.out.println("设置系统时间成功:" + currTime);
        } else {
            System.out.println("设置系统时间失败:" + currTime);
        }

    }
}

执行结果:

开始访问百度服务器:http://www.baidu.com
获取到的服务器时间:Fri, 23 Aug 2013 15:14:03 GMT
解析成北京时间格式:Fri Aug 23 23:14:03 CST 2013
解析成标准时间格式:2013-08-23 23:14:03
设置系统日期成功:2013-08-23
设置系统时间成功:23:14:03

可以把这段代码到处成一个可执行的Jar包

步骤:

1.工程结构如下

.

2.右键,选择Export(导出)


3.导出成一个可执行的Jar文件  Java->Runnable JAR file



4. Launch configuration,执行的主入口,要选对哈,Export destination要保存的文件内容。点击Finish即可



5.可以看到可执行包,双击即可修改同步系统时间,标准时间取的是百度服务器时间,应该挺准的吧。。。



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值