자바를 이용해서 두 날짜 값의 차이를 시/분/초로 구하기. Show 문제풀이 등 급할 때 쓰기 좋은 방법을 소개합니다. 자바에서 기본 제공하는 클래스로 간단하게 구할 수 있습니다. 도구
다음은 경과한 초를 구하는 예제입니다. 수행결과로 3을 출력합니다.
1000밀리초는 1초니까, getTime()으로 구한 값을 1000으로 나누면 초를 얻습니다. 마찬가지로 분을 구할 때는 1000*60=60000으로 나누고, 시를 구할 때는 1000*60*60=3600000으로 나눕니다. class, date, function, Java, java.util, method, methods, 날짜, 메서드, 메소드, 문제풀이, 시간, 알고리즘, 유틸, 유틸리티, 자료형, 자바, 클래스, 프로그래밍, 함수 Written by 코코넛냠냠 | 2017. 10. 21. 16:54 Comment 두 날짜 사이의 시간 / 분 / 초의 차이 를 계산 티스토리 뷰가끔 코드를 짜다보면 시간과 시간사이의 차이를 구해야할때가 종종 있다. 어렵지는 않지만 할때마다 찾아보면서 만들어서 기록해둔다. 첫번째 방법
두번째 방법
출처 Java API를 사용하여 현재 날짜, 현재 시간을 구하는 방법을 소개합니다.
Java 8 이후Java 8 이후부터는 java.time 패키지의 클래스들을 사용하여 날짜와 시간을 표현합니다. 그리고, java.time.format.DateTimeFormatter 클래스를 이용하여 날짜와 시간을 원하는 형식으로 출력할 수 있습니다. 1. java.time.LocalDatejava.time.LocalData 클래스는 날짜를 표현하는 클래스입니다. 현재 날짜(타임존 적용) 구하기
LocalDate.now(); 시스템에 default로 지정된 시간과 타임존을 이용하여 현재 날짜를 가져옵니다. LocalDate.now(ZoneId.of("Europe/Paris")); 시스템 시계의 날짜를 Europe/Paris의 타임존을 적용하여 가져옵니다. 포맷 적용하기
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); now.format(formatter); DateTimeFormatter 클래스를 이용하여 원하는 형태로 출력할 수 있습니다. 년, 월(문자열, 숫자), 일, 요일, 일(Year 기준) 출력하기
int year = now.getYear(); 년도를 가져옵니다.
getMonth() 메소드는 해당월을 나타내는 java.time.Month Enum을 리턴합니다. 리턴받은 Month 객체의 toString() 메소드를 이용하여, 월의 이름을 출력하였습니다. Month 객체를 사용하여, 월을 숫자로 출력하고 싶다면, now.getMonth().getValue() 를 사용할 수도 있습니다.
월을 숫자로 표현하기 위해서 now.getMonth().getValue()를 사용할 수도 있지만, LocalDate 객체의 getMonthValue() 메소드를 사용 할 수도 있습니다.
월의 몇번째 날짜인지를 int로 나타냅니다.
년의 몇번째 날짜인지를 int로 나타냅니다.
getDayOfWeek() 메소드는 요일을 나타낼수 있는 DayOfWeek Enum 객체를 리턴합니다. 그리고, DayOfWeek 객체의 toString() 메소드를 사용하여, 요일을 텍스트로 출력하였습니다. int dayOfWeekValue = now.getDayOfWeek().getValue(); DayOfWeek 객체의 getValue() 메소드를 사용하여 요일을 숫자로 변환할 수 있습니다. 월요일(1) ~ 일요일(7)을 리턴합니다. 2. java.time.LocalTimejava.time.LocalTime 클래스는 시간을 표현하는 클래스입니다. 현재 시간 구하기, 포맷 적용
LocalTime.now(); LocalTime 클래스를 이용하여 현재 시간을 구할 수 있습니다. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH시 mm분 ss초");
LocalDate 예제와 마찬가지로 DateTimeFormatter 클래스를 이용하여 시간을 원하는 포맷의 문자열로 변환할 수 있습니다. 현재 시간의 시, 분, 초 구하기
int hour = now.getHour(); getHour(), getMinute(), getSecond() 메소드를 이용하여 시, 분, 초를 각각 구할 수 있습니다. 3. java.time.LocalDateTimejava.time.LocalDateTime 클래스는 날짜와 시간을 표현하는 클래스입니다. 현재 날짜/시간 구하기, 포맷팅해서 출력하기
LocalDateTime.now(); LocalDateTime.now() 메소드를 사용하면 현재 날짜와 시간을 모두 구할 수 있습니다. now.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초")); LocalDate, LocalTime 클래스의 결과를 포맷팅 했던 것과 마찬가지로 DateTimeFormatter 클래스를 이용해서 포맷팅 할 수 있습니다. 년, 월, 일, 요일, 시, 분, 초 각각 구하기
LocalDate, LocalTime 클래스에서 년, 월, 일, 요일, 시, 분, 초를 각각 구했던 것처럼 LocalDateTime 클래스의 메소드를 이용해서 각각을 구할 수 있습니다. Java 8 이전Java 8 이전의 날짜와 시간을 나타내는 Date, Calendar 클래스는 많은 부분이 deprecated 되었고, 가능하면 사용을 권장하지 않습니다. 그래서 여기에서는 기본적인 내용만 소개합니다. 1. java.util.Date
Date now = new Date(); Date 객체를 생성하여, 현재 시간을 구했습니다. SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초"); String formatedNow = formatter.format(now); SimpleDateFormat 클래스를 이용해서, 원하는 포맷으로 문자열을 생성할 수 있습니다. 2. java.util.Calendar
Calendar.getInstance().getTime(); Calendar의 instance를 생성하여, Calendar 객체의 getTime() 메소드를 호출하여 현재시간을 가져왔습니다. SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초"); String formatedNow = formatter.format(now); getTime() 메소드가 리턴하는 객체가 Date 타입이기 때문에, 앞의 예제와 마찬가지로 SimpleDateFormat 클래스를 이용하여 포맷팅을 하였습니다. Java API를 이용하여 현재 날짜, 시간을 구하고, 포맷팅 하는 방법을 알아보았습니다. |