基于Java自动校准电脑时间程序实现
2016-11-16 20:51
483 查看
最近经常用另一台电脑写工作,这台电脑暑假受潮,主板电池漏电,导致电脑每次开机时间都不准确,对于有强迫症的我,每次开机都要手动把电脑时间调回来心里才舒服,后来嫌麻烦,在网上下载了一个能够自动调整电脑时间的软件,但是这个软件反应很迟钝,获取北京时间要很久,于是乎就下决心,准备用Java写一个能够自动校准电脑时间的软件。在写这个代码的过程中,学到了一些Java中关于网络类的知识,在这篇博客中,把它写出来,加深自己的印象,希望自己能够更快的进步!
首先把这个程序的思路说明一下,很简单。
1.获取正确的网络时间。
2.将网络时间设置给电脑。
Java中URL类与URLConnection类是我们实现第一步的主角,通过查阅Java的API文档可以知,我们首先通过URL的构造方法URL(String spec)来创建一个URL对象,接着调用openConnection()方法来返回一个URLConnection对象,并通过connec建立连接。重要的一点来了,查阅API文档可知,getDate()方法返回一个long类型的距离格林威治时间1970年1月1日的毫秒数,这个就是我们需要的网络时间!
那么怎么把的到的网络时间设置给电脑呢?这里我采用的是通过命令行的方式。命令"date YY-MM-DD"便是设置日期,命令"time HH:MM:SS"便是设置时间,当然了,进行日期和时间的设置是需要在管理员权限下进行的。通过Runtime类中的exec()方法可以进行命令行的操作。
程序如下:
接下来运行java程序
这时候可以看到,电脑的时间已经正确!
首先把这个程序的思路说明一下,很简单。
1.获取正确的网络时间。
2.将网络时间设置给电脑。
Java中URL类与URLConnection类是我们实现第一步的主角,通过查阅Java的API文档可以知,我们首先通过URL的构造方法URL(String spec)来创建一个URL对象,接着调用openConnection()方法来返回一个URLConnection对象,并通过connec建立连接。重要的一点来了,查阅API文档可知,getDate()方法返回一个long类型的距离格林威治时间1970年1月1日的毫秒数,这个就是我们需要的网络时间!
那么怎么把的到的网络时间设置给电脑呢?这里我采用的是通过命令行的方式。命令"date YY-MM-DD"便是设置日期,命令"time HH:MM:SS"便是设置时间,当然了,进行日期和时间的设置是需要在管理员权限下进行的。通过Runtime类中的exec()方法可以进行命令行的操作。
程序如下:
import java.io.*; import java.net.*; import java.util.*; import java.text.*; public class setTime{ public static void main(String[] args){ SimpleDateFormat simdate=new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat simtime=new SimpleDateFormat("HH:mm:ss"); Date date=getNetworkTime("http://www.baidu.com"); String stime=simtime.format(date); String sdate=simdate.format(date); System.out.println("北京时间:"+sdate+" "+stime); Runtime run=Runtime.getRuntime(); try{ run.exec("cmd /c time "+stime); run.exec("cmd /c date "+sdate); System.out.println("设置成功"); Thread.sleep(3000); }catch(IOException e){ System.out.println(e.getMessage()); }catch(InterruptedException e){ System.out.println(e.getMessage()); } } public static Date getNetworkTime(String url1){ try{ URL url=new URL(url1); URLConnection urlc=url.openConnection(); urlc.connect(); long time=urlc.getDate(); Date date=new Date(time); return date; }catch(MalformedURLException e){ System.out.println(e.getMessage()); }catch(IOException e){ System.out.println(e.getMessage()); } return null; } }运行结果:首先人为的调错电脑时间:15:15:00
接下来运行java程序
这时候可以看到,电脑的时间已经正确!
相关文章推荐
- Java测试程序运行时间 实现
- 实现Java程序间隔时间运行
- 彻底摆脱配置文件 五(基于javaagent实现zkconfigutil对程序零侵入)
- JAVA网络编程实现基于TCP协议的时间服务(向服务器查询当前时间)
- Java网络编程 - 基于UDP协议 实现简单的聊天室程序
- Java 记事本——今天添加了简单的插入时间和自动换行菜单的实现
- 基于Visual C++之Windows核心编程代码分析(3)实现程序自动安装
- 用java写的小程序:实现输出万年历,在系统时间的对应那天标记星号输出
- 基于java里SimpleDateFormat类实现时间戳
- Java实现智能机器自动操作电脑
- 如何实现网页程序自动登录(java)?
- 基于java利用JDOM读取XML文件实现简单留言簿程序
- 基于C#实现的开源自动更新程序
- java实现软件程序开机自动启动和创建程序的桌面快捷方式源代码
- 用Java实现基于CORBA的自动负载均衡
- java代码实现网页程序自动登录
- c#实现每隔规定时间自动执行程序代码
- 基于Visual C++之Windows核心编程代码分析(3)实现程序自动安装
- java实现创建临时文件然后在程序退出时自动删除文件
- java实现软件程序开机自动启动和创建程序的桌面快捷方式源代码