JShell이란 무엇인가?
JShell은 Java 9부터 도입된 대화형 커맨드 라인 도구로, Java 언어와 API를 학습하고 실험하며 탐색할 수 있도록 도와줍니다. main() 메서드가 포함된 복잡한 클래스를 작성할 필요 없이, 콘솔에 유효한 Java 코드를 입력하기만 하면 즉시 결과를 확인할 수 있습니다.
JShell에서 현재 날짜와 시간을 얻는 다양한 방법을 코드 예제와 함께 살펴보겠습니다.
1. java.util.Date로 현재 날짜와 시간 얻기
가장 간단한 방법은 new Date()를 사용하는 것입니다. 아래 코드처럼 입력하면 현재 날짜와 시간이 바로 출력됩니다.
jshell> new Date()
$1 ==> Fri Feb 28 11:59:23 IST 2020
jshell>
2. 밀리초 단위의 타임스탬프 얻기
날짜를 밀리초(ms) 숫자 형태로 얻고 싶다면 다음과 같은 방법을 활용할 수 있습니다.
jshell> new Date().getTime()
$2 ==> 1582871487654
jshell> System.currentTimeMillis()
$3 ==> 1582871513421
jshell> new Date(1582871513421L)
$4 ==> Fri Feb 28 12:01:53 IST 2020
jshell>
위 예제에서 getTime()과 System.currentTimeMillis()는 모두 에포크(EPOCH, 1970년 1월 1일) 이후 경과된 시간을 밀리초 값으로 반환합니다. 또한 특정 밀리초 값을 Date 객체의 생성자에 전달하면 해당 시점의 날짜와 시간으로 되돌릴 수도 있습니다.
3. java.time.Instant로 정밀한 시간 얻기
Java 8에서 새롭게 도입된 Date-Time API를 사용하면 더욱 정확하고 표준화된 형식으로 현재 시각을 얻을 수 있습니다. java.time.Instant.now()를 호출하면 UTC 기준의 타임라인상 한 시점이 ISO-8601 형식으로 출력됩니다.
jshell> java.time.Instant.now()
$5 ==> 2020-02-28T07:07:33.941720100Z
jshell>
마무리
이처럼 JShell을 활용하면 클래스 파일을 만들고 컴파일하는 번거로운 과정 없이, 단 몇 줄의 코드만으로 현재 날짜, 밀리초 타임스탬프, 그리고 정밀한 시간 정보를 즉시 확인할 수 있습니다. Java의 날짜·시간 관련 API를 빠르게 익히고 싶다면 JShell은 훌륭한 실습 도구입니다.