1. DateTimeFormatter 클래스
특수 DateTimeFormatter
클래스는 Date Time API에 적용됩니다. 그 목적은 프로그래머가 원하는 정확한 형식으로 날짜와 시간을 가능한 한 쉽게 변환하는 것입니다. 그리고 우리는 자바 개발자들이 성공했다는 소식을 전하게 되어 기쁩니다.
그것을 사용하는 것은 매우 쉽습니다. DateTimeFormatter
먼저 클래스를 만들고 날짜와 시간을 표시하는 방법을 지정하는 패턴을 전달 해야 합니다 .
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
변수는 어디에 dtf
있습니까 DateTimeFormatter
? 클래스 의 정적 메서드입니다 . 그리고 pattern은 날짜와 시간을 표시하는 데 사용할 패턴을 지정하는 문자열입니다.DateTimeFormatter.ofPattern()
DateTimeFormatter
예
암호 | 콘솔 출력 |
---|---|
|
|
위의 예에서는 메소드를 사용하여 패턴을 기반으로 객체를 ofPattern()
생성합니다 . DateTimeFormatter
그리고 다음 줄에서 메서드를 사용하여 개체를 문자열로 format()
변환합니다 . LocalDateTime
화면에 결과가 표시됩니다.
Date Time API의 거의 모든 개체를 메서드로 전달할 수 있습니다 format()
.
static ofPattern()
도 매우 간단합니다. 패턴을 인수로 사용하고 객체를 반환합니다 DateTimeFormatter
. 가장 흥미로운 부분은 패턴에서 찾을 수 있습니다.
2. 서식 패턴
패턴으로 전달된 문자열은 정보를 표시할 때 패턴으로 사용됩니다. MM은 월의 숫자로, dd 는 일로, yy는 연도의 숫자로 대체됩니다. 대소문자가 중요합니다.
이러한 시간 패턴에 대한 전체 표는 다음과 같습니다.
편지 | 의미 |
---|---|
와이 | 년도 |
중 | 월 |
디 | 낮 |
시간 | 시간 |
중 | 분 |
에스 | 초 |
에스 | 1000분의 1초 |
N | 나노초. |
특별히 기억하기 어렵지 않습니다.
그런데 예제의 패턴에 반복되는 문자 MM, dd 및 yy가 포함되는 이유는 무엇입니까? 글쎄, 이것은 더 흥미로워지는 곳입니다.
일반적인 생각
글자 수는 텍스트의 길이에 영향을 미칩니다. 글자가 많을수록 텍스트가 길어집니다.
H를 한 번 지정하면 9시간이 9로 표시되고, H를 연속으로 두 번 지정하면 9시간이 09로 표시됩니다.
문자 y가 연속으로 2번 지정되면 연도는 2자리로 작성됩니다. 연속으로 4번 발생하면 4자리 숫자가 사용됩니다.
문자 M이 연속으로 2번 지정되면 해당 월의 숫자가 기록됩니다. 연속으로 3번이면 월 이름(처음 3자)이 사용됩니다. 연속으로 4번이면 해당 월의 전체 이름이 사용됩니다.
예:
암호 | 콘솔 출력 |
---|---|
|
|
3. 완전한 패턴 표
전체 테이블은 상당히 크고 매우 흥미롭습니다.
무늬 | 패턴의 변형 | 예 | 설명 |
---|---|---|---|
와이 | yy, yyyy | 19; 2019년 | 년도 |
M/L | M, MM, MMM, MMMM, MMMMM | 1; 01; 얀; 1월; 제이 | 월 |
디 | 디, dd | 9; 09 | 낮 |
시간 | H, HH | 2; 02 | 시간 |
중 | m, mm | 삼; 03 | 분 |
에스 | 에스, 에스 | 5; 05 | 초 |
에스 | S, SS, SSS, ... | 1; 12; 123 | 1000분의 1초 |
N | N | 123456789 | 나노초 |
G | 지, GGGG, GGGG | 기원 후; 서기; ㅏ; | 연대 |
Q/Q | q, qq, qqq, qqqq | 삼; 03; Q3; 3분기 | 4분의 1 |
승 | 승 | 13 | 올해의 주 |
여 | 여 | 삼 | 이달의 주 |
이자형 | 에에에에에에에에에에에에에에에에에에에에에에에에에에 | 월; 월요일; 중 | 요일 |
e/c | 에, 에, 에, 에, 에에 | 1; 01; 월요일; 월요일; 중 | 요일 |
ㅏ | ㅏ | 오후 | 오전 아니면 오후 |
시간 | 시간 | 12 | 12시간 시계. |
V | VV | 유럽/헬싱키 | 시간대 |
지 | 지 zzzz | EET; 동유럽 표준시 | 시간대 |
영형 | 오오오오 | 그리니치 표준시+2; GMT+02:00 | 시간대 |
그건 그렇고, 이것은 실제로 완전한 버전이 아닙니다. 여기에서 가장 완전한 버전을 찾을 수 있습니다 .
4. 파싱 시간
이 DateTimeFormatter
클래스는 주어진 패턴에 따라 날짜와 시간을 문자열로 변환할 수 있을 뿐만 아니라 역 연산을 수행할 수 있다는 점에서도 흥미롭습니다!
문자열 구문 분석은 문자열을 의미 있는 토큰으로 분할하는 프로세스입니다.
다음과 같습니다.
암호 | 콘솔 출력 |
---|---|
|
|
먼저 개체를 만들고 DateTimeFormatter
구문 분석에 사용되는 패턴을 설정합니다.
LocalDate.parse()
그런 다음 or LocalTime.parse()
또는 메서드를 호출 LocalDateTime.parse()
하고 개체와 함께 구문 분석할 문자열을 전달합니다 DateTimeFormatter
. 개체는 전달된 텍스트를 구문 분석하는 방법과 이를 수행하는 데 사용해야 하는 패턴을 이해합니다.
또 다른 예: 이번에는 시간을 구문 분석합니다.
암호 | 콘솔 출력 |
---|---|
|
|
GO TO FULL VERSION