如何从互联网获取当前时间?

时间:2019-04-26 02:17:24

标签: java android time utc ntp

我浏览了整个网站以找到解决方案。但是我发现没有一个有效。而且大多数都还很老。所以我想从互联网上获取当前的UTC时间。完全独立于手机。

如果有人可以帮助我,那会很好。

3 个答案:

答案 0 :(得分:1)

这是一项免费服务,返回自Unix时代以来的分钟数: https://currentmillis.com/time/minutes-since-unix-epoch.php

Unix时代是1970年1月1日星期四UTC时间

这里有一些代码来获取此数字并用Java在其中创建一个 Instant 对象:

URL url = new URL("https://currentmillis.com/time/minutes-since-unix-epoch.php");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
long minutes = Long.parseLong(in.readLine());
in.close();
con.disconnect();
Instant instant = Instant.ofEpochSecond(minutes * 60);

请注意,此服务的时间分辨率以分钟为单位,因此第二秒将不准确,因此您必须确定它是否足以满足您的目的。另外请注意,如果您发布此代码,则使其更加健壮(例如适当的异常处理)将是很好的选择。如果需要更精确的时间,可以使用NTP:use of ntp service

答案 1 :(得分:0)

只问谷歌。 :)

curl -i google.com | grep Date

答案 2 :(得分:0)

我猜你是说编码,如果是的话,这些是在JAVA上获取当前时间和日期的方法:

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class currentTime {
 public static void main(String[] args) {
    //1
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd 
    HH:mm:ss");
    LocalDateTime now = LocalDateTime.now();
    System.out.println(dtf.format(now));
    //2
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
    Date date = new Date();
    System.out.println(formatter.format(date));
    //3
    System.out.println(java.time.LocalDate.now());
    //4
    System.out.println(java.time.LocalTime.now());
    //5
    System.out.println(java.time.LocalDateTime.now());
    //6
    System.out.println(java.time.Clock.systemUTC().instant());
    //7
    java.util.Date date1=new java.util.Date();
    System.out.println(date1);
    //8
    long millis=System.currentTimeMillis();
    java.util.Date date2=new java.util.Date(millis);
    System.out.println(date2);
    //9
    Date date3=java.util.Calendar.getInstance().getTime();
    System.out.println(date3);

}

}