자바8 Time API의 Instant 클래스는 시간을 타임스탬프로 다루기 위해서 사용합니다. 타임스탬프는 UTC 기준으로 1970년 1월 1일 0시 0분 0초를 숫자 0으로 정하고 그로 부터 경과된 시간을 양수 또는 음수로 표현합니다. 타임스탬프는 인간에게는 직관적이지 않은 시간의 표현 방법이지만 고전적으로 기계에게는 매우 친화적인 방법으로 현재까지 널리 사용되어 왔습니다. 일단 시간을 표현하기 위해서 별도의 타입없이 기본 데이터 타입으로 표현이 가능한데다가, 타임존이 UTC로 고정되어 있기 때문에 타임스탬프가 어느 타임존 기준인
자바8에 추가된 Time 패키지에는 Duration과 Period라는 상당히 비슷해 보이는 2개의 클래스가 있습니다. 이 두개의 클래스는 둘 다 시간의 길이을 나타내기 위해서 사용되는데요. Duration은 두 "시간" 사이의 간격을 나타내는 반면에 Period는 두 "날짜" 사이의 간격을 나타낸다는 차이점이 있습니다. 이 게 무슨 말인지 예제를 통해서 살펴보도록 하겠습니다. Duration 먼저 Duration 클래스는 두 시간 사이의 간격을 초나 나노 초 단위로 나타냅니다. 다음 예제는 10시 35분 40초와 10시 36분 50
Java8에서 추가된 ZonedDateTime 사용법에 대해서 알아보겠습니다. ZonedDateTime는 LocalDateTime과 달리 타임존 또는 시차 개념을 가지고 있는 클래스입니다. ZonedDateTime ZonedDateTime 클래스는 타임존 또는 시차 개념이 필요한 날짜와 시간 정보를 나타내기 위해서 사용됩니다. public 생성자를 제공하지 않기 때문에 객체를 생성할 때는 now()나, of()와 같은 정적 메소드를 사용하도록 설계되어 있습니다. 제 PC의 타임존이 LA로 세팅이 되어 있어서, 인자없이 ZonedDa
이번 포스팅에서는 Java8 Date/Time API의 LocalDate과 LocalTime 그리고 LocalDateTime 사용법에 대해서 알아보겠습니다. 이 3개의 클래스는 모두 타임존 개념을 가지고 있지 않기 때문에 타임존에 따른 시간 변환이 불가능하다는 공통점을 가지고 있습니다. LocalDate LocalDate 클래스는 타임존 개념이 필요없는 날짜 정보를 나타내기 위해서 사용됩니다. 대표적으로 적용이 가능한 사례는 '생일'을 떠올릴 수 있을 것 같습니다. 보통 우리가 생일을 얘기할 때는 타임존 개념을 넣지 않기 때문입니다