본문 바로가기
안드로이드 자바

[JAVA][Android] UTC 협정 세계시

by teamnova 2022. 6. 16.
728x90

서비스를 만들 때, 시간 표기 방식에 대하여 고민할 때가 많습니다.
예를 들어, 한국 시간을 기준으로 게시글을 작성했을 때,
미국 뉴욕에 있는 유저들은 현지 시간과 다르게 표기됩니다.
이 문제점을 해결하기 위해서 "UTC(협정 세계시)"를 사용합니다.

 

public static String getUTC() throws Exception {
    String utcTime = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date now = new Date();
    String DBDate = sdf.format(now);
    TimeZone tz = TimeZone.getDefault();
    try {
        Date parseDate = sdf.parse(DBDate);
        long milliseconds = parseDate.getTime();
        int offset = tz.getOffset(milliseconds);
        utcTime = sdf.format(milliseconds - offset);
        utcTime = utcTime.replace("+0000", "");
    } catch (Exception e) {
        e.printStackTrace(); throw new Exception(e);
    }
    //System.out.println("협정시: " + utcTime);
    return utcTime;
}

위의 코드는 현재 UTC 시간을 구하는 코드입니다.