전 세계 사람들이 사용할 Java 응용 프로그램을 개발 중입니다. 한 가지 기능은 호주 멜버른에 현재 시간을 표시해야한다는 것입니다.자바에서 다른 나라의 인터넷 시간을 확인하십시오.
나는 this 답을 찾았으며 다음과 같이 코드를 수정했지만 현재 시간 (예상대로)을 반환합니다. 그것은 사용하는 Apache Commons Net library :
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;
}
차라리 내 시간보다, 멜버른의 시간을 반환하는이 코드를 수정하는 방법
? 나는이 문제를 해결하기 위해 다른 솔루션에 대해서도 개방적이다.
고맙습니다!
는 편집 :
존의 조언을 촬영, 나는 JodaTime library을 사용하여 문제를 해결하기 위해 다음 코드를 구축했다. 호주/멜버른을 any timezone found here으로 변경하여 다른 시간대에 사용할 수 있습니다.
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;
}