본문 바로가기
IT, 개발/JAVA

JAVA 타임서버 시간 가져오기(time.bora.net)(NTPUDPClient, TimeInfo)

by 개발자스터디 2022. 9. 5.
반응형

 

 

 

시간 동기화를 위해 타임 서버의 시간을 기준으로 하는 경우가 많습니다.

사람들이 가장 많이 사용되는 방법이 rdate 명령어를 사용하는 것 같습니다.

명령어를 통해 시스템 시간을 동기화하는 방법은 다음에 알아보기로 하고 이번에는 JAVA에서 타임 서버 시간을 가져오는 방법에 대해 알아보도록 하겠습니다.

 

1. 라이브러리

 

jar 파일인 경우

commons-net-3.7.jar

 

Maven dependency

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.7</version>
</dependency>

 

 

2. 예제 소스

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.net.InetAddress;
import java.util.Date;
 
import org.apache.commons.net.ntp.NTPUDPClient;
import org.apache.commons.net.ntp.TimeInfo;
 
public class TimeTest {
 
    public static void main(String[] args) throws Exception {
        
        // 타임서버 host
        String serverName = "time.bora.net";
        
        NTPUDPClient client = new NTPUDPClient();
        InetAddress inetAddr = InetAddress.getByName(serverName);
        
        
        TimeInfo timeInfo = client.getTime(inetAddr);
        
        // Returns time at which time message packet was received by local machine.
        long returnTime = timeInfo.getReturnTime();
        
        // 시간 확인 
        Date serverDate = new Date(returnTime);
        System.out.println(serverDate);
    }
    
}
cs

 

 

위 예제에서는 time.bora.net을 사용했지만 다른 서버를 사용해도 됩니다.

그리고 가져온 시간(getRetrunTime)은 long 타입입니다.

 

본인이 원하는 타임 서버의 host를 입력하여 실행시키면 됩니다.

 

 

 

 

 

728x90
반응형