这个问题在这里已有答案:
我浏览了整个网站以找到解决方案。但我发现的那些都没有奏效。而且他们中的大多数都很老了。所以我想从互联网上获取当前的UTC时间。完全独立于手机。
如果有人可以帮助我会很好。
这是一个自由时间服务,返回自Unix时代以来的分钟数:https://currentmillis.com/time/minutes-since-unix-epoch.php
Unix纪元是1970年1月1日星期四00:00:00 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
只要问谷歌。 :)
curl -i google.com | grep Date
我猜你的意思是编码,如果是的话,这些是在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);
}
}