한국어

EDPS

[Java] 자바 시간, 날짜 계산 (2)

조회 수 123 추천 수 0 2018.04.03 09:01:08

날짜 시간 계산 예제

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.*;
import java.text.*;
public class StringToDate {
public static void main(String[] args) {
try { String str_date="2010-07-09T12:50:58";
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
date = (Date)formatter.parse(str_date);
System.out.println("Today is " +date );
} catch (ParseException e)
{System.out.println("Exception :"+e); }
}
}

 

 

 

Java에서 내가 알고 있는 시간과 관련된 클래스는 다음의 세가지가 있다.


Calendar

날짜와 요일 관련하여 유용한 기능들을 가진 클래스이다. 달력을 그리거나, 오늘이 한달중에서 몇번째 주이고 몇번째 요일인지 계산하는 기능들을 가지고 있다. 단, 시간 정확도는 분까지만 보장한다. 날짜 수준까지만 사용하는 것을 권장한다.


Date

날짜를 구하는 클래스이다. API문서에는 milisecond 수준까지 정확도를 보장한다고 되어 있다. 하지만 메소드중 많은 메소드가 deprecated(권장하지 않음)이기 때문에, 날짜 계산이 필요할 경우에는 Calendar클래스의 add(int, int)를 사용하고, millisecond 단위로 계산할때는 System.getCurrentTimemilis()를 권장한다.


System.getCurrentTimemilis()

국제표준시각(UTC, GMT) 1970/1/1/0/0/0 으로부터 경과한 시각을 밀리초 단위까지 계산하여 long 값으로 반환한다. 주로 정확한 시간 계산이 필요한 경우에 해당 메서드를 주로 사용한다. 필요한 경우 Date클래스나 Calendar 클래스로 변환하여 사용할 수 있다.

 

아래는 Calendar 클래스의 사용법이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//현재 날짜를 받아옴.
 
Calendar t = Calendar.getInstance();
 
//오늘날짜의 해당연도를 구함
 
String year = Integer.toString(t.get(Calendar.YEAR));
 
//오늘날짜의 해당 월을 구함. 1월은 0이기 때문에 + 1
 
String month = Integer.toString((t.get(Calendar.MONTH) + 1));
 
//한자리 숫자, 예를 들면 1월인 경우 "01"등으로 문자열 변환
 
month = month.length() > 1 ? month : "0" + month;
 
//오늘의 날짜 구함
 
String day = Integer.toString(t.get(Calendar.DAY_OF_MONTH));
 
day = day.length() > 1 ? day : "0" + day;
 
//현재 시각의 시를 구함.
 
String hh = Integer.toString(t.get(Calendar.HOUR_OF_DAY));
 
//현재 시각의 분을 구함.
 
String mm = Integer.toString(t.get(Calendar.MINUTE));
 
//오늘의 요일을 구함
 
String WeekDay = Integer.toString(t.get(Calendar.DAY_OF_WEEK));
 
//오늘이 1~5번째 주중 몇번째 주인지 구함.
 
String WeekOfMonth = Integer.toString(t.get(Calendar.WEEK_OF_MONTH);
 
//오늘을 기준으로 3주전 날짜로 수정
 
 
 
t.add(Calendar.WEEK_OF_MONTH, -3);

 

 

 

 

아래는 Date 클래스의 사용법이다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//현재 시각 가져오기.
 
Date today = new Date ();
 
//출력
 
System.out.println ( today );
 
//시작일. 여기서는 샘플로 24시간 전의 시각을 지정.
 
Date startDay = new Date(System.currentTimeMillis() - 1000*60*60*24);
 
//종료일. 여기서는 샘플로 24시간 후의 시각을 지정.
 
Date endDay = new Date(System.currentTimeMillis() - 1000*60*60*24);
 
//해당 기간 조회
 
if(startDate.before(today) && endDate.after(today))
 
{
 
 System.out.pringln("지정하신 날짜는 해당 기간내에 존재합니다.");
 
}

 


 

출처: http://blog.naver.com/vlueguy7/70096153885



출처: http://betatester.tistory.com/17 [It's My Real Life]
List of Articles
번호 제목 글쓴이 날짜 조회 수
202 [구글ebook의 ascm파일을 PDF 파일로 변환하기] [1] 수텐리 2019-01-08 39
201 sfc /scannow 명령 수텐리 2018-12-17 23
200 Detect Internet Explorer (IE) up to version 11 and Edge (12+) 수텐리 2018-11-28 40
199 추억의 Windows 95를 설치할 수 있는 방법 file 수텐리 2018-09-04 30
198 DVDfab passkey 수텐리 2018-08-26 46
197 GA 코드 관련 수텐리 2018-08-24 49
196 마인드맵 - XMind [1] 수텐리 2018-08-21 39
195 QA 테스트 자동화 툴의 개념과 대표적인 도구 10가지 소개 [1] 수텐리 2018-08-19 194
194 판매재고관리 프로그램 [1] 수텐리 2018-08-17 408
193 PM의 생산성을 '업'시켜줄 프로젝트 관리 툴 15선 WindBoy 2018-08-14 184
192 Find in file for windows 수텐리 2018-07-27 16
191 Internet 연결 시 IP 주소를 확인 WindBoy 2018-07-19 25
190 MS SQL에서 Table Description 추출하는 쿼리 수텐리 2018-07-10 106
189 Spring에서 JSON에 XSS 방지 처리 하기 수텐리 2018-07-05 489
188 chart.js 활용하기 WindBoy 2018-06-18 108
187 [펌] postman 관련 WindBoy 2018-05-29 129
186 [블록체인플랫폼] ①이더리움, 블록체인 2.0 시대를 열다 [1] 수텐리 2018-05-23 29
185 Sublime Text를 사용 시 업데이트 안하는 방법 수텐리 2018-04-03 28
184 [Java] 자바 날짜, 시간 계산 예제 (1) 수텐리 2018-04-03 288
» [Java] 자바 시간, 날짜 계산 (2) 수텐리 2018-04-03 123