ISO 8601 형식으로 현재 타임스탬프 가져오기
- Java에서 ISO 8601 형식의 중요성 및 사용
-
ISO 8601 형식에서
T
및Z
사용 - UTC 시간대를 사용하여 현재 타임스탬프를 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 형식에서 T
및 Z
사용
타임스탬프 2022-09-30T20:18:46.384Z
가 있다고 가정합니다. 여기서 T
는 어떤 것도 의미하지 않습니다. ISO 8601 날짜/시간 형식에 필요한 구분자일 뿐입니다.
T
는 시간의 약자로 읽을 수 있고 Z
는 UTC(Coordinated Universal Time)에서 0으로 오프셋되기 때문에 제로 타임스탬프에 사용됩니다.
다음 예제를 통해 T
와 Z
의 사용법을 이해해 봅시다.
2022-09-30T15:50+00
- 2022년 9월 30일 오후 3시 30분(세계 표준시).2022-09-30T15:50+00Z
- 2022년 9월 30일 오후 3시 30분, 표준시 기준으로 표기에Z
가 추가됩니다.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
Test
의 main()
메서드에서 먼저 시간대를 가져오기 위해 문자열 유형 인수를 사용하는 getTimeZone()
메서드를 사용합니다. 이 메서드는 DateFormat
달력과 연결된 시간대를 반환합니다.
그런 다음 데이터를 구문 분석하고 형식을 지정하는 데 도움이 되는 SimpleDateFormat
클래스를 사용합니다. 날짜를 한 형식에서 다른 형식으로 변환하는 데 도움이 됩니다.
필요한 날짜/시간 형식을 지정하여 이 클래스를 인스턴스화합니다.
다음으로 setTimeZone()
메서드를 사용하여 시간대를 설정하고 getTimeZone()
메서드에서 반환된 값을 보유하는 매개변수를 전달합니다. 그런 다음 dateFormat
객체를 사용하여 주어진 날짜의 형식을 지정합니다.
마지막으로 ISO 8601 형식으로 된 날짜를 인쇄합니다(위의 출력 참조).
이제 문제는 왜 우리가 이 특정 형식을 사용하는가입니다. 그것에 대한 몇 가지 이점이 있습니까? 아래에서 살펴보겠습니다.
ISO 8601 형식 사용의 이점
다음은 다른 일반적인 변형에 비해 ISO 8601 형식을 사용할 때의 몇 가지 장점입니다.
- 소프트웨어로 읽기/쓰기가 쉽습니다.
- 문자열 비교로 비교/정렬이 쉽다.
- 날짜 다음에 시간이 오는 문자열은 비교/정렬하기 쉽습니다. 예:
2022-09-30 10:15:00
. - 자국어에 관계없이 이해하기 쉽고 일반적으로 사용되는 다른 날짜 변형과 혼동될 수 없습니다.
- 표기는 길이가 일정하고 간결하다. 또한 4자리 연도는 세기 전환기에 문제를 일으키지 않습니다.
- 이 날짜 형식
년-월-일
은 예를 들어 한국, 헝가리, 스웨덴, 일본 및 기타 국가에서 널리 사용됩니다.
이 형식은 중국 날짜 표현과 동일하므로 거의 25%가 이미 이 시스템에 익숙합니다.
보시다시피 ISO 8601 형식을 사용하면 여러 가지 장점이 있으며 사용하고 이해하기 쉽습니다. 따라서 응용 프로그램에서 이 날짜 형식을 배우고 사용하는 것이 중요합니다.