Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java로 현지 시간을 GMT로 변환하는 프로그램 만들기

이 글에서는 현지 시간(Local Time)을 GMT(그리니치 표준시)로 변환하는 방법을 알아보겠습니다. Java에는 기본으로 제공되는 내장 Date 클래스가 없지만, java.time 패키지를 임포트하면 날짜와 시간 API를 자유롭게 활용할 수 있습니다. 이 패키지에는 다양한 날짜·시간 관련 클래스가 포함되어 있습니다.

아래는 실제 변환 결과를 보여주는 예시입니다.

입력 예시

현지 시간: Fri Mar 18 00:01:54 IST 2022

출력 예시

GMT 기준 시간: 17/03/2022 18:31:54

알고리즘

1단계 - 시작합니다.
2단계 - LocalDateTime 타입의 객체 date를 선언합니다.
3단계 - 값을 정의합니다.
4단계 - DateTimeFormatter 객체를 사용해 다양한 날짜·시간 형식을 정의합니다.
5단계 - GMT 형식의 날짜 및 시간을 출력합니다.
6단계 - 종료합니다.

예제 1: main 함수에서 모든 작업 처리하기

첫 번째 예제에서는 모든 연산을 하나의 'main' 함수 안에 함께 작성하는 방식을 살펴봅니다.

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Demo {
    public static void main(String[] args){
        System.out.println("필요한 패키지가 임포트되었습니다");
        Date localTime = new Date();
        System.out.println("Date 객체가 생성되었습니다");
        DateFormat GMT_format = new SimpleDateFormat("dd/MM/yyyy" + " " + " HH:mm:ss");
        GMT_format.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println("\n현지 시간: " + localTime);
        System.out.println("GMT 기준 시간: " + GMT_format.format(localTime));
    }
}

실행 결과

필요한 패키지가 임포트되었습니다
Date 객체가 생성되었습니다

현지 시간: Tue Mar 29 08:59:11 UTC 2022
GMT 기준 시간: 29/03/2022 08:59:11

예제 2: 객체 지향 방식으로 함수 분리하기

두 번째 예제에서는 반복적인 작업을 별도의 함수로 캡슐화하여 객체 지향 프로그래밍(OOP) 스타일로 구현합니다. 코드의 재사용성과 가독성이 향상된다는 장점이 있습니다.

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Demo {
    static void GMT_time(Date localTime){
        DateFormat GMT_format = new SimpleDateFormat("dd/MM/yyyy" + " " + " HH:mm:ss");
        GMT_format.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println("\n현지 시간: " + localTime);
        System.out.println("GMT 기준 시간: " + GMT_format.format(localTime));
    }
    public static void main(String[] args){
        System.out.println("필요한 패키지가 임포트되었습니다");
        Date localTime = new Date();
        System.out.println("Date 객체가 생성되었습니다");
        GMT_time(localTime);
    }
}

실행 결과

필요한 패키지가 임포트되었습니다
Date 객체가 생성되었습니다

현지 시간: Tue Mar 29 08:59:38 UTC 2022
GMT 기준 시간: 29/03/2022 08:59:38

정리

이처럼 SimpleDateFormatTimeZone.getTimeZone("GMT")를 조합하면 간단하게 현지 시간을 GMT로 변환할 수 있습니다. 두 가지 예제 모두 동일한 결과를 출력하지만, 예제 2처럼 기능을 함수로 분리하면 유지보수가 쉬워지고 코드 재사용에도 유리합니다.