자바 날짜/시간 계산 예제 코드 (다양한 예제)
시스템의 밀리초 구하기.(국제표준시각(UTC, GMT) 1970/1/1/0/0/0 으로부터 경과한 시각)
// 밀리초 단위(*1000은 1초), 음수이면 이전 시각long time = System.currentTimeMillis ( ); System.out.println ( time.toString ( ) ); |
현재 시각을 가져오기.
Date today = new Date (); System.out.println ( today ); |
결과 : Sat Jul 12 16:03:00 GMT+01:00 2000
경과시간(초) 구하기
long time1 = System.currentTimeMillis (); long time2 = System.currentTimeMillis ();system.out.println ( ( time2 - time1 ) / 1000.0 ); |
Date를 Calendar로 맵핑하기
Date d = new Date ( );Calendar c = Calendar.getInstance ( );c.setTime ( d ); |
날짜(년/월/일/시/분/초) 구하기
import java.util.*;import java.text.*;SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy.MM.dd HH:mm:ss", Locale.KOREA );Date currentTime = new Date ( );String dTime = formatter.format ( currentTime );System.out.println ( dTime ); |
날짜(년/월/일/시/분/초) 구하기2
GregorianCalendar today = new GregorianCalendar ( );int year = today.get ( today.YEAR );int month = today.get ( today.MONTH ) + 1;int yoil = today.get ( today.DAY_OF_MONTH ); <p></p><p>GregorianCalendar gc = new GregorianCalendar ( );</p><p>System.out.println ( gc.get ( Calendar.YEAR ) );System.out.println ( String.valueOf ( gc.get ( Calendar.MONTH ) + 1 ) );System.out.println ( gc.get ( Calendar.DATE ) );System.out.println ( gc.get ( DAY_OF_MONTH ) );</p> |
날짜(년/월/일/시/분/초) 구하기3
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.KOREA);Calendar cal = Calendar.getInstance(Locale.KOREA);nal = df.format(cal.getTime()); |
- 표준시간대를 지정하고 날짜를 가져오기.
TimeZone jst = TimeZone.getTimeZone ("JST");Calendar cal = Calendar.getInstance ( jst ); // 주어진 시간대에 맞게 현재 시각으로 초기화된 GregorianCalender 객체를 반환.// 또는 Calendar now = Calendar.getInstance(Locale.KOREA);System.out.println ( cal.get ( Calendar.YEAR ) + "년 " + ( cal.get ( Calendar.MONTH ) + 1 ) + "월 " + cal.get ( Calendar.DATE ) + "일 " + cal.get ( Calendar.HOUR_OF_DAY ) + "시 " + cal.get ( Calendar.MINUTE ) + "분 " + cal.get ( Calendar.SECOND ) + "초 " ); |
결과 : 2000년 8월 5일 16시 16분 47초
영어로된 날짜를 숫자로 바꾸기
Date myDate = new Date ( "Sun,5 Dec 1999 00:07:21" ); System.out.println ( myDate.getYear ( ) + "-" + myDate.getMonth ( ) + "-" + myDate.getDay ( ) ); |
"Sun, 5 Dec 1999 00:07:21"를 "1999-12-05"로 바꾸기
SimpleDateFormat formatter_one = new SimpleDateFormat ( "EEE, dd MMM yyyy hh:mm:ss",Locale.ENGLISH );SimpleDateFormat formatter_two = new SimpleDateFormat ( "yyyy-MM-dd" );String inString = "Sun, 5 Dec 1999 00:07:21";ParsePosition pos = new ParsePosition ( 0 );Date frmTime = formatter_one.parse ( inString, pos );String outString = formatter_two.format ( frmTime );System.out.println ( outString ); |
숫자 12자리를, 다시 날짜로 변환하기
Date conFromDate = new Date();long ttl = conFromDate.parse ( "Dec 25, 1997 10:10:10" );System.out.println ( ttl ); //예 938291839221Date today = new Date ( ttl );DateFormat format = DateFormat.getDateInstance ( DateFormat.FULL,Locale.US );String formatted = format.format ( today );System.out.println ( formatted ); |
특정일로부터 n일 만큼 이동한 날짜 구하기
특정일의 시간을 long형으로 읽어온다음..
날짜*24*60*60*1000 을 계산하여.
long형에 더해줍니다.
그리고 나서 Date클래스와 Calender클래스를 이용해서 날짜와 시간을 구하면 됩니다
특정일에서 일정 기간후의 날짜 구하기2
//iDay 에 입력하신 만큼 빼거나 더한 날짜를 반환 합니다.import java.util.*;public String getDate ( int iDay ) { Calendar temp=Calendar.getInstance ( ); temp.add ( Calendar.DAY_OF_MONTH, iDay ); int nYear = temp.get ( Calendar.YEAR ); int nMonth = temp.get ( Calendar.MONTH ) + 1; int nDay = temp.get ( Calendar.DAY_OF_MONTH ); StringBuffer sbDate=new StringBuffer ( ); sbDate.append ( nYear ); if ( nMonth < 10 ) sbDate.append ( "0" ); sbDate.append ( nMonth ); if ( nDay < 10 ) sbDate.append ( "0" ); sbDate.append ( nDay ); return sbDate.toString ( );} |
현재날짜에서 2달전의 날짜를 구하기
//오늘 날짜를 기준으루..Calendar cal = Calendar.getInstance ( );//2개월 전....cal.add ( cal.MONTH, -2 ); System.out.println ( cal.get ( cal.YEAR ) );System.out.println ( cal.get ( cal.MONTH ) + 1 );System.out.println ( cal.get ( cal.DATE ) ); |
달에 마지막 날짜 구하기
for ( int month = 1; month <= 12; month++ ) { GregorianCalendar cld = new GregorianCalendar ( 2001, month - 1, 1 ); System.out.println ( month + "/" + cld.getActualMaximum ( Calendar.DAY_OF_MONTH ) );} |
해당하는 달의 마지막 일 구하기
GregorianCalendar today = new GregorianCalendar ( );int maxday = today.getActualMaximum ( ( today.DAY_OF_MONTH ) );System.out.println ( maxday ); |
특정일을 입력받아 해당 월의 마지막 날짜를 구하는 간단한 예제.(달은 -1 해준다.)...윤달 30일 31일 알아오기.
Calendar cal = Calendar.getInstance ( );cal.set ( Integer.parseInt ( args[0] ), Integer.parseInt ( args [1] ) - 1, Integer.parseInt ( args [2] ) );SimpleDateFormat dFormat = new SimpleDateFormat ( "yyyy-MM-dd" );System.out.println ( "입력 날짜 " + dFormat.format ( cal.getTime ( ) ) );System.out.println ( "해당 월의 마지막 일자 : " + cal.getActualMaximum ( Calendar.DATE ) ); |
해당월의 실제 날짜수 구하기 ( 1999년 1월달의 실제 날짜수를 구하기 )
Calendar calendar = Calendar.getInstance ( );calendar.set ( 1999, 0, 1 );int maxDays = calendar.getActualMaximum ( Calendar.DAY_OF_MONTH ); |
어제 날짜 구하기
오늘날짜를 초단위로 구해서 하루분을 빼주고 다시
셋팅해주면 쉽게 구할수 있죠..
setTime((기준일부터 오늘까지의 초를 구함) - 24*60*60)해주면 되겠죠..
어제 날짜 구하기2
import java.util.*;public static Date getYesterday ( Date today ){ if ( today == null ) throw new IllegalStateException ( "today is null" ); Date yesterday = new Date ( ); yesterday.setTime ( today.getTime ( ) - ( (long) 1000 * 60 * 60 * 24 ) ); return yesterday;} |
내일 날짜 구하기
Date today = new Date ( );Date tomorrow = new Date ( today.getTime ( ) + (long) ( 1000 * 60 * 60 * 24 ) ); |
내일 날짜 구하기2
Calendar today = Calendar.getInstance ( );today.add ( Calendar.DATE, 1 );Date tomorrow = today.getTime ( ); |
오늘날짜에서 5일 이후 날짜를 구하기
Calendar cCal = Calendar.getInstance();c.add(Calendar.DATE, 5); |
날짜에 해당하는 요일 구하기
//DAY_OF_WEEK리턴값이 일요일(1), 월요일(2), 화요일(3) ~~ 토요일(7)을 반환합니다. //아래 소스는 JSP일부입니다.import java.util.*;Calendar cal= Calendar.getInstance ( );int day_of_week = cal.get ( Calendar.DAY_OF_WEEK );if ( day_of_week == 1 ) m_week="일요일";else if ( day_of_week == 2 ) m_week="월요일";else if ( day_of_week == 3 ) m_week="화요일";else if ( day_of_week == 4 ) m_week="수요일";else if ( day_of_week == 5 ) m_week="목요일";else if ( day_of_week == 6 ) m_week="금요일";else if ( day_of_week == 7 ) m_week="토요일"; |
콤보박스로 선택된 날짜(예:20001023)를 통해 요일을 영문으로 가져오기
//gc.get(gc.DAY_OF_WEEK); 하면 일요일=1, 월요일=2, ..., 토요일=7이 나오니까, //요일을 배열로 만들어서 뽑아내면 되겠죠. GregorianCalendar gc=new GregorianCalendar ( 2000, 10 - 1 , 23 ); String [] dayOfWeek = { "", "Sun", "Mon", .... , "Sat" }; String yo_il = dayOfWeek ( gc.get ( gc.DAY_OF_WEEK ) ); |
두 날짜의 차이를 일수로 구하기
각각의 날짜를 Date형으로 만들어서 getTime()하면
long으로 값이 나오거든요(1970년 1월 1일 이후-맞던가?- 1/1000 초 단위로..)
그러면 이값의 차를 구해서요. (1000*60*60*24)로 나누어 보면 되겠죠.
두 날짜의 차이를 일수로 구하기2
import java.io.*;import java.util.*;Date today = new Date ( );Calendar cal = Calendar.getInstance ( );cal.setTime ( today );// 오늘로 설정. Calendar cal2 = Calendar.getInstance ( );cal2.set ( 2000, 3, 12 ); // 기준일로 설정. month의 경우 해당월수-1을 해줍니다.int count = 0;while ( !cal2.after ( cal ) ){ count++; cal2.add ( Calendar.DATE, 1 ); //다음날로 바뀜 System.out.println ( cal2.get ( Calendar.YEAR ) + "년 " + ( cal2.get ( Calendar.MONTH ) + 1 ) + "월 " + cal2.get ( Calendar.DATE ) + "일" );}System.out.println ( "기준일로부터 " + count + "일이 지났습니다." ); |
두 날짜의 차이를 일수로 구하기3
import java.io.*;import java.util.*;public class DateDiff{ public static int GetDifferenceOfDate ( int nYear1, int nMonth1, int nDate1, int nYear2, int nMonth2, int nDate2 ) { Calendar cal = Calendar.getInstance ( ); int nTotalDate1 = 0, nTotalDate2 = 0, nDiffOfYear = 0, nDiffOfDay = 0; if ( nYear1 > nYear2 ) { for ( int i = nYear2; i < nYear1; i++ ) { cal.set ( i, 12, 0 ); nDiffOfYear += cal.get ( Calendar.DAY_OF_YEAR ); } nTotalDate1 += nDiffOfYear; } else if ( nYear1 < nYear2 ) { for ( int i = nYear1; i < nYear2; i++ ) { cal.set ( i, 12, 0 ); nDiffOfYear += cal.get ( Calendar.DAY_OF_YEAR ); } nTotalDate2 += nDiffOfYear; } cal.set ( nYear1, nMonth1-1, nDate1 ); nDiffOfDay = cal.get ( Calendar.DAY_OF_YEAR ); nTotalDate1 += nDiffOfDay; cal.set ( nYear2, nMonth2-1, nDate2 ); nDiffOfDay = cal.get ( Calendar.DAY_OF_YEAR ); nTotalDate2 += nDiffOfDay; return nTotalDate1-nTotalDate2; } public static void main ( String args[] ) { System.out.println ( "" + GetDifferenceOfDate (2000, 6, 15, 1999, 8, 23 ) ); }} |
[출처] 서비의 다락방 (www.yunsobi.com/blog/325)
'프로그래밍 > Android (Java)' 카테고리의 다른 글
| 배경 패턴이미지 적용 (0) | 2015.01.27 |
|---|---|
| 자바 날짜/시간 계산 예제 코드 (다양한 예제) 2 (0) | 2015.01.27 |
| 액션바에 overflow 메뉴 생성하기 (0) | 2015.01.27 |
| WebView 사용하기 (0) | 2015.01.27 |
| 날짜 사용 예제 (0) | 2015.01.27 |







