오늘 날짜와 관련된 포스팅을 잘 쪼개서(?) 한번에 작성하는 것 같다.
사소하게 알게 된 여러 사실들을 벨로그에 비공개글로 먼저 작성해두는데, 막상 비공개로 간략하게 메모만 해놓은 포스트를 제대로 쓰지를 않으니 한참 쌓여있었다.
그 중에 가장 만만한 놈들부터 차례대로 작성하고 있다 ㅎㅎ..
아무튼 본론으로 돌아와서, LocalDateTime 은 시간을 나타내는 국제 표준인 ISO-8601 규격을 따른다. 가령, LocalDateTime.now()
를 호출하면 날짜 뿐만이 아닌 시간도 함께 표현되므로 2022-08-02T22:30:33.597067100
과 같이 출력될 것이다.
이러한 날짜/시간 포맷을 원하는 대로 파싱해서 String 으로 변환할 수 있다.
LocalDateTime
도 그렇고, LocalDate
도 그렇고 시간과 관련된 객체는 파싱을 위한 .format()
메소드를 제공한다.
.format()
메소드를 위해 필요한 인자는 DateTimeFormatter
이다.
DateTimeFormatter
의 메소드인 .ofPattern
을 통해 다음과 같이 포맷팅 형식을 지정해줄 수 있다.
val now: LocalDateTime = LocalDateTime.now()
println(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
// 출력: 2022-08-02 22:42:38
LocalDateTime.now()
메소드를 통해 현재 일자를 LocalDateTime
객체로 받아오고, 해당 객체의 .format()
메소드를 사용하였다.
이때 인자로 DateTimeFormatter.ofPattern("포맷팅 형식")
을 넘겨주면 원하는 날짜 형태의 String 으로 반환된다.
만일, DateTimeFormatter.ofPattern("yyyy-MM-dd")
과 같이 날짜만 포맷팅하고 싶다면 결과는 2022-08-02
로 나타날 것이다.
끗.