有时候本地时间不准或者被人为的修改过,这个时候就需要从网络获取时间来校准。

需要用到的jar为:https://commons.apache.org/proper/commons-net/download_net.cgi (本文用的是commons-net-1.4.1.jar)

了解相关ntp的背景:http://support.ntp.org/bin/view/Servers/NTPPoolServers

代码为:

import java.io.IOException;

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.apache.commons.net.ntp.NTPUDPClient;

import org.apache.commons.net.ntp.TimeInfo;

import org.apache.commons.net.ntp.TimeStamp;

public class TimeTest {

public static void main(String[] args) {

System.out.println(new TimeTest().getDateTime());

}

private static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

/**

* @功能:获取网络最新时间

* @return

*/

public String getDateTime() {

try {

NTPUDPClient timeClient = new NTPUDPClient();

InetAddress timeServerAddress = InetAddress.getByName("pool.ntp.org");

TimeInfo timeInfo = timeClient.getTime(timeServerAddress);

TimeStamp timeStamp = timeInfo.getMessage().getTransmitTimeStamp();

return dateFormat.format(timeStamp.getDate());

} catch (UnknownHostException e) {

e.printStackTrace();

return dateFormat.format(new Date());

} catch (IOException e) {

e.printStackTrace();

return dateFormat.format(new Date());

}

}

}

java获取网络时间_java使用ntp同步获取网络时间相关推荐

  1. linux时间同步解析,linux adjtimex详解时间偏差函数ntp同步与offset

    一.adjtimex函数命令是作什么用的 adjtimex是Linux内核系统自带的一个时间纠正函数,基本上linux的每个发行版本儿都自带这个函数,该函数主要是用来纠正和调整linux的系统时间. ...

  2. Centos 修改时间地区及NTP同步北京时间

    在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...

  3. java memcached 存储对象_java – 从Memcache中获取低级别数据存储区实体对象时的慢速反序列化...

    事实证明,检索存储内存缓存的低级数据存储实体非常缓慢.由于objectify将实体缓存为低级数据存储区实体类型,因此当使用objectify从memcache中获取许多实体时,这会导致性能不佳. 真正 ...

  4. java反射获取实现类_Java介绍通过反射获取类的信息

    免费学习推荐:java基础教程 目录1.获取Field 2.反编译Field 3.通过反射机制访问对象属性 4.可变长度参数 5.反射Method(了解) 6.反编译(了解) 7.反射机制调用方法 8 ...

  5. java日期算前一天_java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)...

    1.情景展示 java 根据系统当前日期获取前一天日期.后一天日期,或者根据初始日期推算出期望(向前/向后)日期. 2.解决方案 导包 import java.text.ParseException; ...

  6. java 获取est时间_java – 在EST时区获取XMLGregorianCalendar日期

    我正在使用TimeZone.setDefault(TimeZone.getTimeZone("EST"));获得EST时区,它对我来说很好.但是有时候由于默认的JVM时区没有人在我 ...

  7. java游戏时间条_java – 如何获得游戏的实时时间

    我正在使用 Java,我正在制作游戏.在这个游戏中,实时是非常重要的一部分. 出于这个原因,我试图使用Ntp获得实时. 我在网上找到的是这段代码. import java.net.InetAddres ...

  8. java爬虫编写步骤_JAVA爬虫--编写第一个网络爬虫程序

    JAVA爬虫–编写第一个网络爬虫程序 前言上一章节介绍了XPATH基础语法,本章节将手把手带大家编写第一个爬虫程序,同时也希望能通过这个爬虫程序,帮助大家熟悉上一章节学习的XPATH基础语法并运用到实 ...

  9. java获取注解信息_java 自定义注解,获取注解信息

    1.声明注解 @OneAnnotation package com.wdletu.log.test; import java.lang.annotation.*; /** * Created by z ...

  10. java data 图像 显示_Java(JMF)获取本地摄像头,实时显示图像

    这几天用了JMF,感觉这个好坑,在win7,jdk1.7版本上支持都不太好,可能是JMF是一个老的东西把,现在apache好像都放弃了,没去了解.. 搞了我3天的时间.主要还是在环境搭建这边花了好多时 ...

最新文章

  1. uboot2014.10移植(一)
  2. 买房猛于虎《功夫熊猫无家可归》
  3. Python(2):基本数据类型
  4. springcloud(七)-Feign声明式REST调用
  5. 本科生手握十余篇SCI,达博士毕业要求后,他获顶级名校全奖直博offer
  6. 盘点丨2019十大边缘计算项目
  7. 你需要administrators提供的权限才能删除_终于解决了:你需要来自XXX的权限才能对此文件进行更改
  8. php如何生成本地文档,php如何生成word文件
  9. python常用_30个Python常用小技巧
  10. 这是来博客园的第二篇日志
  11. 操作系统随机密码,定时改密码
  12. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_02-freemarker介绍
  13. python文本模糊匹配
  14. CSS中如何设拉伸背景图片铺满屏幕
  15. python三维向量运算_使用Python编写一个三维向量,实现向量的加法减法,点乘叉乘...
  16. 醉逍遥显示无法更新服务器,蜀门醉逍遥版本修改教程 (值好几千,俺心血).doc
  17. 计算机实训四 表格制作素材,计算机平面设计实训(第3版 赵荣胡昌杰)课件 素材平面图像设计实训04.ppt...
  18. 基于TCP/UDP的NIO服务端/客户端代码实现damo(java)
  19. JDK源码解析---Short
  20. 通俗讲解CDN是什么

热门文章

  1. Spring Data MongoDB简单的增删改查
  2. 2020年,谁还在中国卖手机?
  3. Nodejs教程15:net模块初探
  4. matlab a律非均匀量化,均匀量化和A律PCM非均匀量化实验.doc
  5. 【每日英文】2021.8.5
  6. mfw 攻防世界web题 (Git泄露)
  7. 40行代码的Python爬虫案例:虎牙-王者荣耀主播的人气排行
  8. 服务都微了,编排怎么整?
  9. [代码记录生活]Name evn is not bound in this Context 解决方案
  10. 搭建个人博客【搭建Hexo+Fluid博客并部署到GitHub/云服务器(阿里云/腾讯云)】