Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中以秒获取UTC时间?_Java_Time - Fatal编程技术网

如何在java中以秒获取UTC时间?

如何在java中以秒获取UTC时间?,java,time,Java,Time,显示正确的秒数 我把本地时钟拨回5秒来测试这个。 我试过JodaTime,还有这个。这是我的当地时间 NTPUDPClient timeClient = new NTPUDPClient(); InetAddress inetAddress = InetAddress.getByName(TIME_SERVER); TimeInfo timeInfo = timeClient.getTime(inetAddress); long returnTime = time

显示正确的秒数

我把本地时钟拨回5秒来测试这个。 我试过JodaTime,还有这个。这是我的当地时间

    NTPUDPClient timeClient = new NTPUDPClient();
    InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
    TimeInfo timeInfo = timeClient.getTime(inetAddress);
    long returnTime = timeInfo.getReturnTime();
    Date time = new Date(returnTime);
    System.out.println("Time from " + TIME_SERVER + ": " + time);
输出: 时间from Time.nist.gov:Mon Apr 20 06:44:20 CDT 2015

Time.IS输出: 上午6:44:25


我需要UTC时间降到秒。

以UTC为时区创建新的日期时间

final DateTime now = new DateTime(returnTime, DateTimeZone.UTC);
final Date javaDate = now.toDate();

我认为这个想法是从NTP服务器获取时间,而不是从本地机器获取时间……如何使用
Date
,而不是
DateTime
?在Java 8之前,Joda库远远优于内置的Java类型,所以我将使用Joda在原始问题中回答这个问题。@SteveChaloner输出仍然来自本地机器。以下是我得到的:输出:Time-a.nist.gov:Mon-Apr 20 11:34:08 CDT 2015 Mon-Apr 20 11:34:08 CDT 2015仍然不正确,秒数…@Blackie当DateTime转换为java.util.Date时,时区信息丢失;请参阅前面关于内置Java日期支持的一点。如果添加
System.out.println(现在)
对于您的代码,您将看到它以UTC格式打印。@halex longs不能携带时区偏移量,因此正如David Wallace上面所说的,这是一个本地格式问题,因为内部值以UTC格式保存。