ISO 8601 형식으로 현재 타임스탬프 가져오기

Mehvish Ashiq 2023년10월12일
  1. Java에서 ISO 8601 형식의 중요성 및 사용
  2. ISO 8601 형식에서 TZ 사용
  3. UTC 시간대를 사용하여 현재 타임스탬프를 ISO 8601로 변환
  4. ISO 8601 형식 사용의 이점
ISO 8601 형식으로 현재 타임스탬프 가져오기

Java 또는 기타 프로그래밍 언어에서 문자열을 날짜로 변환하는 것은 기본 기술 중 하나입니다. 날짜를 문자열 형식으로 저장한 다음 Date 개체로 변환하여 프로젝트에서 진행하는 것은 매우 간단합니다.

이 기사에서는 현재 타임스탬프를 ISO 8601 형식으로 가져오는 방법을 설명합니다. ISO 8601 형식과 이를 프로젝트에서 사용할 수 있는 이유와 방법에 대해 알아보겠습니다.

Java에서 ISO 8601 형식의 중요성 및 사용

날짜 및 시간 형식은 회의 및 회의를 주선하거나 고객을 처리해야 할 때 특히 중요합니다. 그러나 이 디지털 시대에 전 세계적으로 서로 다른 시간대를 지정하는 표준 형식을 모든 사람이 이해하기 쉽게 만드는 것은 쉽지 않은 것 같습니다.

국제 표준 ISO 8601 형식은 이 문제를 정확하게 해결하는 형식입니다. 국제 표준화 기구(ISO) 날짜/시간 형식을 사용하여 시간이 선택 사항인 숫자 날짜/시간을 지정할 수 있습니다.

국경 너머의 모든 이해관계자는 이 국제 표준을 사용하여 날짜/시간을 지정할 수 있습니다. ISO 8601 날짜 표현은 그레고리 언 달력를 기반으로 합니다.

ISO 8601 형식에서는 연도부터 시작하여 월, 일, 시, 분, 초 및 밀리초가 오는 날짜/시간을 지정합니다.

예를 들어 2022-09-30 15:00:00.000은 2022년 9월 30일 오후 3시를 보여줍니다(이 타임스탬프는 지역 오프셋을 지정하지 않았기 때문에 현지 시간을 기준으로 합니다. 이에 대해서는 이 튜토리얼의 뒷부분에서 배우게 됩니다). 다음은 ISO 8601을 사용한 날짜/시간의 표 표현입니다.

ISO 8601 형식 값 범위
연도(Y) YYYY, 네 자리 숫자. 두 자리로 줄여서 쓸 수도 있습니다.
월(M) MM, 01-12
주(W) WW, 01-53
일(D) D, 요일, 1-7
시(h) hh, 00-23 여기서 24:00:00은 종료 시간입니다.
분(m) mm, 00-59
초(s) ss, 00-59
소수점 이하(f) 초의 분수, 모든 정확도

ISO 8601 형식에서 TZ 사용

타임스탬프 2022-09-30T20:18:46.384Z가 있다고 가정합니다. 여기서 T는 어떤 것도 의미하지 않습니다. ISO 8601 날짜/시간 형식에 필요한 구분자일 뿐입니다.

T는 시간의 약자로 읽을 수 있고 Z는 UTC(Coordinated Universal Time)에서 0으로 오프셋되기 때문에 제로 타임스탬프에 사용됩니다.

다음 예제를 통해 TZ의 사용법을 이해해 봅시다.

  1. 2022-09-30T15:50+00 - 2022년 9월 30일 오후 3시 30분(세계 표준시).
  2. 2022-09-30T15:50+00Z - 2022년 9월 30일 오후 3시 30분, 표준시 기준으로 표기에 Z가 추가됩니다.
  3. 2022-09-30T15:50-04:00 - 2022년 9월 30일 오후 3시 30분, 뉴욕 시간대(서머타임 적용 UTC).

우리는 ISO 8601 날짜 형식에 대해 충분히 배웠습니다. Java에서 어떻게 할 수 있고 UTC에서 현재 날짜/시간을 얻는지 봅시다.

UTC 시간대를 사용하여 현재 타임스탬프를 ISO 8601로 변환

예제 코드:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class Test {
  public static void main(String args[]) {
    TimeZone timezone = TimeZone.getTimeZone("UTC");
    //"Z" indicates UTC, which means no timezone offset
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
    dateFormat.setTimeZone(timezone);
    String ISODate = dateFormat.format(new Date());
    System.out.println(ISODate);
  }
}

출력:

2022-09-30T07:20:52Z

Testmain() 메서드에서 먼저 시간대를 가져오기 위해 문자열 유형 인수를 사용하는 getTimeZone() 메서드를 사용합니다. 이 메서드는 DateFormat 달력과 연결된 시간대를 반환합니다.

그런 다음 데이터를 구문 분석하고 형식을 지정하는 데 도움이 되는 SimpleDateFormat 클래스를 사용합니다. 날짜를 한 형식에서 다른 형식으로 변환하는 데 도움이 됩니다.

필요한 날짜/시간 형식을 지정하여 이 클래스를 인스턴스화합니다.

다음으로 setTimeZone() 메서드를 사용하여 시간대를 설정하고 getTimeZone() 메서드에서 반환된 값을 보유하는 매개변수를 전달합니다. 그런 다음 dateFormat 객체를 사용하여 주어진 날짜의 형식을 지정합니다.

마지막으로 ISO 8601 형식으로 된 날짜를 인쇄합니다(위의 출력 참조).

이제 문제는 왜 우리가 이 특정 형식을 사용하는가입니다. 그것에 대한 몇 가지 이점이 있습니까? 아래에서 살펴보겠습니다.

ISO 8601 형식 사용의 이점

다음은 다른 일반적인 변형에 비해 ISO 8601 형식을 사용할 때의 몇 가지 장점입니다.

  1. 소프트웨어로 읽기/쓰기가 쉽습니다.
  2. 문자열 비교로 비교/정렬이 쉽다.
  3. 날짜 다음에 시간이 오는 문자열은 비교/정렬하기 쉽습니다. 예: 2022-09-30 10:15:00.
  4. 자국어에 관계없이 이해하기 쉽고 일반적으로 사용되는 다른 날짜 변형과 혼동될 수 없습니다.
  5. 표기는 길이가 일정하고 간결하다. 또한 4자리 연도는 세기 전환기에 문제를 일으키지 않습니다.
  6. 이 날짜 형식 년-월-일은 예를 들어 한국, 헝가리, 스웨덴, 일본 및 기타 국가에서 널리 사용됩니다.

이 형식은 중국 날짜 표현과 동일하므로 거의 25%가 이미 이 시스템에 익숙합니다.

보시다시피 ISO 8601 형식을 사용하면 여러 가지 장점이 있으며 사용하고 이해하기 쉽습니다. 따라서 응용 프로그램에서 이 날짜 형식을 배우고 사용하는 것이 중요합니다.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - Java DateTime