java获取网络当前时间
发布网友
发布时间:2022-04-23 11:09
我来回答
共4个回答
热心网友
时间:2023-10-12 01:46
如果你要获取的是Internet时间,可以使用NTP服务。
NTP概念简介
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,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 < 4; i++) {
secondsSince1900 = (secondsSince1900 << 8) | raw.read();
}
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
热心网友
时间:2023-10-12 01:46
java获取网络时间
try {
URL url = new URL("http://www.bjtime.cn");// 取得资源对象
URLConnection uc = url.openConnection();// 生成连接对象
uc.connect(); // 发出连接
long ld = uc.getDate(); // 取得网站日期时间
Date date = new Date(ld); // 转换为标准时间对象
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int day = calendar.get(Calendar.DAY_OF_MONTH);
if (day == 6) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
热心网友
时间:2023-10-12 01:47
中国科学院国家授时中心
string webUrl = http://www.ntsc.ac.cn
/**
* 获取指定网站的日期时间
*
* @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;
}
热心网友
时间:2023-10-12 01:47
是在网页里写吗???追问不是,用java代码获取的
java获取网络当前时间
如果你要获取的是Internet时间,可以使用NTP服务。NTP概念简介 Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防...
java如何获取当前时间,java如何获取ip地址
public static void main(String[] args) { try { System.out.println("当前时间:"+new Date());System.out.println("IP地址 : " + InetAddress.getLocalHost());} catch (UnknownHostException e) { e.printStackTrace();} }
java如何获得当前时间,除系统时间以外
public static void main(String[] args) throws IOException { // 联网获取时间 URL url=new URL("http://www.bjtime.cn");//取得资源对象 URLConnection uc=url.openConnection();//生成连接对象 uc.connect(); //发出连接 long ld=uc.getDate(); //取得网站日期时间 System.out.println(n...
java怎么获取当前时间 不是电脑显示的时间
你这个就是当前时间和你说的电脑显示时间两个是一样的= ="Calendar.getInstance().getTime()<---系统时间 抓网路时间的方法 大陆区请自行换抓取网址 / 网路时间 return / public String date() { String date = null;try { URL url = new URL("https://www.google.com.tw");URLConnection...
java网络编程中,想获得网络时间
Date date = new Date(time); System.out.println("date:"+date.toString()); System.out.println(new SimpleDateFormat("yyyy-MM-dd hh-mm-ss").format(date)); }这个可以获得网络时间 Socket conn = new Socket("stdtime.gov.hk", 13);中的stdtime.gov.hk这个是主机,13是端口 ...
java中怎样获取当前时间?
1.获取当前时间,并格式化为(年-月-日 时:分:秒)。Date t = new Date();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(df.format(t));打印输出结果如下图:2.将java.util.Date转换为java.sql.Date格式。java.sql.Date sqld = new java....
“java”中怎么得到当前时间的小时?
1、通过Date类来获取当前时间。Date day=new Date()SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")System.out.println(df.format(day))2、通过System类中的currentTimeMillis方法来获取当前时间。SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ...
Java中获取当前系统对象的时间
在Java中,获取当前系统对象的时间可以通过多种方式实现。首先,使用`java.util.Date`类是最直接的方法。创建一个`Date`对象,如`Date date = new Date();`,这个操作会获取系统当前的日期和时间。在控制台输出时,你会看到类似于"Fri Nov 30 19:40:37 CST 2018"的格林威治时间。然而,这可能不...
编程在浏览器状态栏输出当前系统时间。 java高手速度
你说的跑马灯效果吧?在浏览器状态栏 显示 IP地址 时间 等等的网络有很多JS脚本代码的 我给你一个参考下: var msg="这是一个跑马灯效果的JavaScript文档"; //这里在状态栏显示的 可以换成dataget()就是当前时间了 var interval = 100;var spacelen = 120;var space10=" ";var seq=0;...
java调用实时时间的有方法吗?
1、JAVA 获取当前实时时间或日期,都可以通过 java.util.Date 类来获取。2、调用 new java.util.Date().getTime(); 这个方法获取的就是当前的时间,然后根据需要在进行格式化显示,格式化类为:SimpleDateFormat。3、具体的代码如下图所示。