用Java确定另一个国家的互联网时间

 手机用户2602936393 发布于 2023-02-08 14:48

我正在开发一个将被世界各地的人们使用的Java应用程序.一项功能要求它显示澳大利亚墨尔本当前时间.

我找到了这个答案,并按如下方式调整了代码,但它返回了我当前的时间(如预期的那样).它使用Apache Commons Net库:

    try {
        String TIME_SERVER = "time-a.nist.gov";   
        NTPUDPClient timeClient = new NTPUDPClient();
        InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
        TimeInfo timeInfo = timeClient.getTime(inetAddress);
        long returnTime = timeInfo.getMessage().getTransmitTimeStamp().getTime();
        return new Date(returnTime);
    } catch (Exception e) {
        System.out.println(e.getMessage());
        return null;
    }

如何修改此代码以返回墨尔本的时间,而不是我的时间?我也愿意接受其他解决方案来解决这个问题.

谢谢!

编辑:

根据Jon的建议,我使用了JodaTime库并构建了以下代码来解决问题.通过将澳大利亚/墨尔本更改为此处找到的任何时区,它可以用于其他时区.

    try {
        //Get the time for the current time zone.
        String TIME_SERVER = "time-a.nist.gov";   
        NTPUDPClient timeClient = new NTPUDPClient();
        InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
        TimeInfo timeInfo = timeClient.getTime(inetAddress);
        long returnTime = timeInfo.getMessage().getTransmitTimeStamp().getTime();

        //Format it to the Melbourne TimeZone.
        DateTimeZone tzMelbourne = DateTimeZone.forID("Australia/Melbourne");
        return new DateTime(returnTime).toDateTime(tzMelbourne);
    } catch (Exception e) {
        System.out.println(e.getMessage());
        return null;
    }

Jon Skeet.. 6

您目前正在返回一个java.util.Date-不具有时区.这只是一个瞬间.它不在您的时区或其他时区 - 它只是一瞬间.当您打电话toString()时,将在您的本地时区为您提供文本表示,但这不是对象中数据的一部分.

如果您需要代表"日期/时间在特定时间区",那么你应该使用Calendar类,或理想使用约达时间是一个更好的日期/时间API.

或者,如果您只是尝试格式化特定时区的日期/时间,则可以使用SimpleDateFormat- 设置时区,然后格式化Date您已经返回的值.

1 个回答
  • 您目前正在返回一个java.util.Date-不具有时区.这只是一个瞬间.它不在您的时区或其他时区 - 它只是一瞬间.当您打电话toString()时,将在您的本地时区为您提供文本表示,但这不是对象中数据的一部分.

    如果您需要代表"日期/时间在特定时间区",那么你应该使用Calendar类,或理想使用约达时间是一个更好的日期/时间API.

    或者,如果您只是尝试格式化特定时区的日期/时间,则可以使用SimpleDateFormat- 设置时区,然后格式化Date您已经返回的值.

    2023-02-08 14:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有