Vla*_*zki 0 java time apache-commons apache-commons-net
我正在开发一个将被世界各地的人们使用的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;
}
Run Code Online (Sandbox Code Playgroud)
如何修改此代码以返回墨尔本的时间,而不是我的时间?我也愿意接受其他解决方案来解决这个问题.
谢谢!
编辑:
根据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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1165 次 |
| 最近记录: |