获取网络时间(国家标准时间)
来源:互联网 发布:淘宝退款率高会降权吗 编辑:程序博客网 时间:2024/06/05 11:56
我们在开发中,很多应用需要读取网络时间来作为一个时间的标准,对业务逻辑进行相对可靠的校验。
下面是Java中(Android一样)读取网络时间的代码:
package com.test;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;/** * 读取网络时间 * * @author SHANHY(365384722@QQ.COM) * @date 2015年11月27日 */public class GetNetworkTime { public static void main(String[] args) { String webUrl1 = "http://www.bjtime.cn";//bjTime String webUrl2 = "http://www.baidu.com";//百度 String webUrl3 = "http://www.taobao.com";//淘宝 String webUrl4 = "http://www.ntsc.ac.cn";//中国科学院国家授时中心 String webUrl5 = "http://www.360.cn";//360 String webUrl6 = "http://www.beijing-time.org";//beijing-time System.out.println(getWebsiteDatetime(webUrl1) + " [bjtime]"); System.out.println(getWebsiteDatetime(webUrl2) + " [百度]"); System.out.println(getWebsiteDatetime(webUrl3) + " [淘宝]"); System.out.println(getWebsiteDatetime(webUrl4) + " [中国科学院国家授时中心]"); System.out.println(getWebsiteDatetime(webUrl5) + " [360安全卫士]"); System.out.println(getWebsiteDatetime(webUrl6) + " [beijing-time]"); } /** * 获取指定网站的日期时间 * * @param webUrl * @return * @author SHANHY * @date 2015年11月27日 */ private static String getWebsiteDatetime(String webUrl){ try { URL url = new URL(webUrl);// 取得资源对象 URLConnection uc = url.openConnection();// 生成连接对象 uc.connect();// 发出连接 long ld = uc.getDate();// 读取网站日期时间 Date date = new Date(ld);// 转换为标准时间对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);// 输出北京时间 return sdf.format(date); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }}
网络上很多帖子差不多都说使用 www.bjtime.cn 来获取网络时间,但是通过我的实际测试(测试时间2015-11-27 23:50),此时这个 bjtime 的时间并不准,与北京时间竟然悬殊了十几秒,显然降低了可靠性。
大家看下我测试输出的结果便一目了然,如下:
2015-11-27 23:51:37 [bjtime]2015-11-27 23:50:22 [百度]2015-11-27 23:50:22 [淘宝]2015-11-27 23:50:22 [中国科学院国家授时中心]2015-11-27 23:50:22 [360安全卫士]2015-11-27 23:50:22 [beijing-time]
显而易见,几个知名互联网公司的时间是一致的,所以获取网络时间的时候,建议大家选用相对比较靠谱的网站,上面测试的几个已经足够备选了(百度、淘宝、国家授时中心)。
另外值得一提的是,该方法获取时间,只需要建立连接就可以了,不需要请求(request)与响应(response),所以比单独写接口效率要高。
5 1
- 获取网络时间(国家标准时间)
- 获取网络时间(国家标准时间-北京时间为准)
- java方式获取网络时间(国家标准时间)
- 时间日期格式-国家标准
- php获取时间(系统时间和网络时间)
- 获取网络时间
- Lua获取网络时间
- 获取网络时间
- Android 获取网络时间
- android 获取网络时间
- Qt获取网络时间
- java获取网络时间
- 获取网络时间
- 获取当前网络时间
- 获取网络时间
- 获取网络时间
- 获取网络时间
- 如何获取网络时间
- Android:eclipse 参数优化(解决内存够大,但是eclipse还是很卡)
- Recipes for Running Spark Streaming Applications in Production
- java基础学习——变量,java基本类型,运算符和表达式
- Map , List Android
- 训练指南(白书)习题记录
- 获取网络时间(国家标准时间)
- 黑马程序员——java入门基础知识
- Android-Content Provider Basics
- Linux之win764位下基于EasyBCD的硬盘安装ubuntu32位双系统一些错误总结
- ArrayList和LinkedList
- 在Xcode中修改bundle display name让应用名字显示中文
- sublime text安装插件时提示There are no packages available for installation问题解决
- 排序(直接插入排序)
- ViewController生命周期