[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 |