如何获取当前时间(NOT DEVICE)

时间:2019-08-16 09:51:31

标签: java android

如何获取今天的日期和时间(即实际设备)

我已经尝试过了,但很多都给了设备时间

String date = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss", Locale.getDefault()).format(new Date());

4 个答案:

答案 0 :(得分:1)

您可以从互联网上获取时间详细信息,然后使用它。只需互联网即可。

使用android.net.sntp.SntpClient类。

SntpClient client = new SntpClient();
int timeout = 50000;
if (client.requestTime("time-a.nist.gov", timeout)) {
    long time = client.getNtpTime();
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(time);
    calendar.getTime();  // this should be your date
}

答案 1 :(得分:0)

1)由于对spring: cloud: stream: kafka: bindings: main-consumer-channel: consumer: autoCommitOffset: false bindings: main-consumer-channel: destination: main_topic consumer: maxAttempts: 1 backOffInitialInterval: 5000 backOffMultiplier: 2 应用了带有小时和分钟的格式,因此您的代码无法编译
2)您使用的是设备的默认区域设置,因此它将返回本地日期时间。
3)您需要使用时区时间,并应用Greenwitch的时区来获取当前的DateTime,而不应用任何时区。
检查ZonedDateTime了解更多信息

答案 2 :(得分:0)

如果我对您的理解正确,则可能要从NTP(网络时间协议)服务器获取时间戳。而且Java已经有了可以满足您需求的库。 看一下这个。 (StackOverFlow) How to make my java app get global time from some online clock

答案 3 :(得分:0)

//获取当前默认时间     System.out.println(Calendar.getInstance()。getTime());

// get different time zone
ZoneId zoneId = ZoneId.of("America/Los_Angeles");
LocalTime localTime=LocalTime.now(zoneId);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime=localTime.format(formatter);
System.out.println("Current time of the day in Los Angeles: " + formattedTime);