java获取网络时间_java获取网络当前时间
展开全部
如果你要获取的是Internet时间,可以使用NTP服务。
NTP概念简介
Network Time Protocol(NTP)是62616964757a686964616fe4b893e5b19e31333332643164用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
java实现:import java.io.InputStream;
import java.net.Socket;
public class TimeUtil {
public static final int DEFAULT_PORT = 37;//NTP服务器端口
public static final String DEFAULT_HOST = "time-nw.nist.gov";//NTP服务器地址
private TimeUtil() {
};
public static long currentTimeMillis(Boolean sync) {
if (sync != null && sync.booleanValue() != true)
return System.currentTimeMillis();
try {
return syncCurrentTime();
} catch (Exception e) {
return System.currentTimeMillis();
}
}
public static long syncCurrentTime() throws Exception {
// The time protocol sets the epoch at 1900,
// the java Date class at 1970. This number
// converts between them.
long differenceBetweenEpochs = 2208988800L;
// If you'd rather not use the magic number uncomment
// the following section which calculates it directly.
/*
* TimeZone gmt = TimeZone.getTimeZone("GMT"); Calendar epoch1900 =
* Calendar.getInstance(gmt); epoch1900.set(1900, 01, 01, 00, 00, 00);
* long epoch1900ms = epoch1900.getTime().getTime(); Calendar epoch1970
* = Calendar.getInstance(gmt); epoch1970.set(1970, 01, 01, 00, 00, 00);
* long epoch1970ms = epoch1970.getTime().getTime();
*
* long differenceInMS = epoch1970ms - epoch1900ms; long
* differenceBetweenEpochs = differenceInMS/1000;
*/
InputStream raw = null;
try {
Socket theSocket = new Socket(DEFAULT_HOST, DEFAULT_PORT);
raw = theSocket.getInputStream();
long secondsSince1900 = 0;
for (int i = 0; i
secondsSince1900 = (secondsSince1900 <
}
if (raw != null)
raw.close();
long secondsSince1970 = secondsSince1900 - differenceBetweenEpochs;
long msSince1970 = secondsSince1970 * 1000;
return msSince1970;
} catch (Exception e) {
throw new Exception(e);
}
}
}
中国大概能用的NTP时间服务器
server 133.100.11.8 prefer
server 210.72.145.44
server 203.117.180.36 //程序中所用的
server 131.107.1.10
server time.asia.apple.com
server 64.236.96.53
server 130.149.17.21
server 66.92.68.246
server www.freebsd.org
server 18.145.0.30
server clock.via.net
server 137.92.140.80
server 133.100.9.2
server 128.118.46.3
server ntp.nasa.gov
server 129.7.1.66
server ntp-sop.inria.frserver 210.72.145.44(国家授时中心服务器IP地址)
ntpdate 131.107.1.10
ntpdate -s time.asia.apple.com
java获取网络时间_java获取网络当前时间相关推荐
- java joda 获取utc时间_Java获取时间与系统时间相差8小时终极解决方案
0.引言 Druid中时区的问题一直困扰着我们,所以我专门去研究了一下世界时区和Java中的时区,对使用Druid很用帮助. 1.UTC时间&GMT时间 UTC时间是时间标准时间(Univer ...
- java 当前utc时间_Java获取UTC时间的方法详解
本文实例讲述了java获取utc时间的方法.分享给大家供大家参考,具体如下: 取得本地时间: java.util.calendar cal = java.util.calendar.getinstan ...
- java 获取当前日期时间_Java 获取当前日期时间
Java 当前日期时间教程介绍了各种 Java 类,以获取 Java 中的当前日期时间. 有几种方法可以获取 Java 中的当前日期和时间. Java 程序员可以使用 Java 8(java.time ...
- java如何获取明天的时间_java获取各种格式的时间,获取昨天明天日期,获取一天的开始结束时间...
一.获取当前日期和时间 1.使用Date和DateFormat Date now = new Date(); DateFormat df1 = DateFormat.getDateInstance() ...
- java ip地址接口_java获取ip地址与网络接口的方法示例
java.net包 大家应该都知道,网络相关对象在java.net包中,Java net包下的类如下: 1.获取主机对象InetAddress //获取本地主机对象 InetAddress host ...
- java 获取秒数_Java获取精确到秒的时间戳(转)
1.时间戳简介: 时间戳的定义:通常是一个字符序列,唯一地标识某一刻的时间.数字时间戳技术是数字签名技术一种变种的应用.是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01 ...
- java 获取包路径_java获取java文件路径的四种方法
java获取java文件路径的四种方法 发布时间:2020-04-17 11:03:45 来源:亿速云 阅读:750 作者:小新 今天小编给大家分享的是java获取java文件路径的四种方法,很多人都 ...
- java生成时间戳类型_Java获取当前时间戳的方法有哪些
Java获取当前时间戳的方法有哪些 时间:2017-08-22 来源:华清远见JAVA学院 时间戳就是一种类型,只是精度很高,比datetime要精确的多,通常用来防止数据出现脏读现象.那么J ...
- java获取文件地址吗_java获取文件所在服务器位置路径
1.通过 import javax.servlet.ServletContext 类获取web 服务器所在真实路径 public ActionForward execute( ActionMappin ...
- java网络编程_Java基础 网络编程
主要内容 软件架构CS/BS 网络通信三要素 TCP通信 Socket套接字 ServerSocket 教学目标 能够辨别UDP和TCP协议特点 能够说出TCP协议下两个常用类名称 能够编写TCP协议 ...
最新文章
- C#压缩解压zip 文件
- 关闭自动更新_Win10系统关闭自动更新方法
- (技能篇)双机热备之Oracle切换故障处理
- Java反序列化json内存溢出_反序列化JSON时出现线程错误
- Linux内核协议栈- 创建socket:__sock_create函数调用关系
- pg 日期和时间的运算操作
- Python 多进程
- android异步工作,Android异步消息机制详解
- Spring-ConfigurationClass类
- 60后即将退休的人,有多少存款就算富有了?
- 前后端分离开发,六大方案全揭秘:HTTP API 认证授权术
- 幼儿抽象逻辑思维举例_四个锻炼幼儿推理能力的小游戏,让孩子的逻辑思维更上一层楼...
- 超宽屏幕比例_显示器屏幕比例与分辨率对照表
- AutoCad二次开发
- 3分钟教你如何用代码向心爱的女生表白
- Android 4.4(KitKat)窗口管理子系统 - 体系框架
- 2021年材料员-通用基础(材料员)考试题库及材料员-通用基础(材料员)考试总结
- 关于html video 在chrome浏览器下无法快进问题解决
- java 处理物料清单_ERP之物料清单(BOM)
- 用DOS命令打开IE浏览器、我的文档等等
热门文章
- 经营一家女性内衣专卖店的条件
- 原神台式电脑配置要求2021适合玩原神游戏电脑清单
- 手把手教你搭建本地云服务器-MAC
- 111 ajax获取数据jsrender显示数据
- java分析测试代码程序执行时间与消耗内存
- 不禁网页的浏览器_明明浏览“不良网站”危险,为啥手机浏览器却不强制禁止访问?...
- 创建线程的七种方法 (图解 全网最全最详细)
- iOS项目技术还债之路(IAP掉单优化)
- 滑动窗口(预处理)+输入特殊一般化处理技巧(UVA-12174)
- “普通人”鲁迅:31岁那年,我终于当上了公务员