[Android] Java에서 UTC와 TimeZone 완전 정복하기

2025. 3. 31. 22:41프로그래밍 언어/Java 기초

728x90
반응형

1. UTC 기준으로 저장된 문자열 → Date 객체로 파싱

String utcString = "2025-03-31 01:10:30";

// 1. SimpleDateFormat 설정 (UTC 기준)
SimpleDateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

// 2. 문자열 → Date 객체
Date parsedDate = null;
try {
    parsedDate = utcFormat.parse(utcString);
} catch (ParseException e) {
    e.printStackTrace();
}

 

 

2. UTC Date 객체 → Local 시간대 문자열로 변환

// 현재 기기 시간대 기준으로 포맷
SimpleDateFormat localFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
localFormat.setTimeZone(TimeZone.getDefault()); // 예: KST면 +09:00

String localTime = localFormat.format(parsedDate);
// 출력 예시: "2025-03-31 10:10:30"

 

 

3. 현재 시간을 UTC 기준 문자열로 저장하기

Date now = new Date();

SimpleDateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

String utcNow = utcFormat.format(now);
// 저장 시 DB 등에 사용: "2025-03-31 00:00:00"

 

 

4. 현재 시간을 로컬 기준 문자열로 표시하기

SimpleDateFormat localFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
localFormat.setTimeZone(TimeZone.getDefault());

String localNow = localFormat.format(new Date());
// 출력: 실제 현재 시간 기준으로
728x90
반응형

'프로그래밍 언어 > Java 기초' 카테고리의 다른 글

[JAVA] StringBuilder와 StringBuffer의 차이점  (0) 2024.07.05
[Java/Kotlin]Iterator  (0) 2023.05.11