egovframework.rfc3.common.util
Class EgovDateUtil

java.lang.Object
  extended by egovframework.rfc3.common.util.EgovDateUtil

public class EgovDateUtil
extends java.lang.Object

Date 에 대한 Util 클래스

Since:
2009.02.01
Version:
1.0
Author:
공통서비스 개발팀 이중호
See Also:
 << 개정이력(Modification Information) >>
   
   수정일      수정자           수정내용
  -------    --------    ---------------------------
   2009.02.01  이중호          최초 생성

 Copyright (C) 2009 by MOPAS  All right reserved.
 

Constructor Summary
EgovDateUtil()
           
 
Method Summary
static java.lang.String addDay(java.lang.String dateStr, int day)
          yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 일(day)를 증감한다.
static java.util.Date addDays(java.util.Date date, int days)
           
static java.lang.String addMonth(java.lang.String dateStr, int month)
          yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 월을 증감한다.
static java.lang.String addYear(java.lang.String dateStr, int year)
          yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 년을 증감한다.
static java.lang.String addYearMonthDay(java.lang.String sDate, int year, int month, int day)
          yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 년, 월, 일을 증감한다.
static java.lang.String addYMDtoDayTime(java.lang.String sDate, java.lang.String sTime, int year, int month, int day, int hour, int minute, java.lang.String formatStr)
          입력된 일자에 연, 월, 일, 시간, 분을 가감한 날짜, 시간을 포멧스트링 형식으로 반환
static java.lang.String addYMDtoWeek(java.lang.String sDate, int year, int month, int day)
          입력된 일자에 연, 월, 일을 가감한 날짜의 요일을 반환
static boolean checkDate(java.lang.String sDate)
          yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 유효한 날짜인지 검사.
static boolean checkDate(java.lang.String year, java.lang.String month, java.lang.String day)
          입력한 년, 월, 일이 유효한지 검사.
static java.lang.String convertDate(java.lang.String sDate, java.lang.String sTime, java.lang.String sFormatStr)
          날짜형태의 String의 날짜 포맷만을 변경해 주는 메서드
static java.lang.String convertDate(java.lang.String strSource, java.lang.String fromDateFormat, java.lang.String toDateFormat, java.lang.String strTimeZone)
          날짜형태의 String의 날짜 포맷 및 TimeZone을 변경해 주는 메서드
static java.util.Date convertStringToDate(java.lang.String dateStr, java.lang.String format)
          dateStr date 변환
static java.lang.String convertWeek(java.lang.String sWeek)
          입력받은 요일의 영문명을 국문명의 요일로 반환
static int datetoInt(java.lang.String sDate)
          입력된 일자를 int 형으로 반환
static java.lang.String formatDate(java.lang.String sDate, java.lang.String ch)
          yyyyMMdd 형식의 날짜문자열을 원하는 캐릭터(ch)로 쪼개 돌려준다
ex) 20030405, ch(.) -> 2003.04.05 ex) 200304, ch(.) -> 2003.04 ex) 20040101,ch(/) --> 2004/01/01 로 리턴
static java.lang.String formatTime(java.lang.String sTime, java.lang.String ch)
          HH24MISS 형식의 시간문자열을 원하는 캐릭터(ch)로 쪼개 돌려준다
ex) 151241, ch(/) -> 15/12/31
static java.lang.String getCurrentDate(java.lang.String dateType)
          현재(한국기준) 날짜정보를 얻는다.
static java.lang.String getDate(java.util.Date date, java.lang.String format)
          입력된 Date형을 원하는 포맷으로 변경
static int getDaysDiff(java.lang.String sDate1, java.lang.String sDate2)
          yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열 dateStr1 dateStr2 사이의 일 수를 구한다.
static java.lang.String getRandomDate(java.lang.String sDate1, java.lang.String sDate2)
          입력받은 일자 사이의 임의의 일자를 반환
static java.lang.String getToday()
          현재(한국기준) 날짜정보를 얻는다.
static boolean isLeapYear(int year)
          입력받은 연도가 윤년인지 아닌지 검사한다.
 java.lang.String leapYear(int year)
          연도를 입력 받아 해당 연도 2월의 말일(일수)를 문자열로 반환한다.
static int timetoInt(java.lang.String sTime)
          입력된 시간을 int 형으로 반환
static java.util.HashMap toLunar(java.lang.String sDate)
          입력받은 양력일자를 변환하여 음력일자로 반환
static java.lang.String toSolar(java.lang.String sDate, int iLeapMonth)
          입력받은 음력일자를 변환하여 양력일자로 반환
static java.lang.String validChkDate(java.lang.String dateStr)
          입력된 일자 문자열을 확인하고 8자리로 리턴
static java.lang.String validChkTime(java.lang.String timeStr)
          입력된 일자 문자열을 확인하고 8자리로 리턴
static boolean validDate(java.lang.String sDate)
          입력일자의 유효 여부를 확인
static boolean validDate(java.lang.String sDate, int sWeek)
          입력일자, 요일의 유효 여부를 확인
static boolean validTime(java.lang.String sTime)
          입력시간의 유효 여부를 확인
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EgovDateUtil

public EgovDateUtil()
Method Detail

addYearMonthDay

public static java.lang.String addYearMonthDay(java.lang.String sDate,
                                               int year,
                                               int month,
                                               int day)

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 년, 월, 일을 증감한다. 년, 월, 일은 가감할 수를 의미하며, 음수를 입력할 경우 감한다.

 DateUtil.addYearMonthDay("19810828", 0, 0, 19)  = "19810916"
 DateUtil.addYearMonthDay("20060228", 0, 0, -10) = "20060218"
 DateUtil.addYearMonthDay("20060228", 0, 0, 10)  = "20060310"
 DateUtil.addYearMonthDay("20060228", 0, 0, 32)  = "20060401"
 DateUtil.addYearMonthDay("20050331", 0, -1, 0)  = "20050228"
 DateUtil.addYearMonthDay("20050301", 0, 2, 30)  = "20050531"
 DateUtil.addYearMonthDay("20050301", 1, 2, 30)  = "20060531"
 DateUtil.addYearMonthDay("20040301", 2, 0, 0)   = "20060301"
 DateUtil.addYearMonthDay("20040229", 2, 0, 0)   = "20060228"
 DateUtil.addYearMonthDay("20040229", 2, 0, 1)   = "20060301"
 

Parameters:
dateStr - 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
year - 가감할 년. 0이 입력될 경우 가감이 없다
month - 가감할 월. 0이 입력될 경우 가감이 없다
day - 가감할 일. 0이 입력될 경우 가감이 없다
Returns:
yyyyMMdd 형식의 날짜 문자열
Throws:
java.lang.IllegalArgumentException - 날짜 포맷이 정해진 바와 다를 경우. 입력 값이 null인 경우.

addYear

public static java.lang.String addYear(java.lang.String dateStr,
                                       int year)

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 년을 증감한다. year는 가감할 수를 의미하며, 음수를 입력할 경우 감한다.

 DateUtil.addYear("20000201", 62)  = "20620201"
 DateUtil.addYear("20620201", -62) = "20000201"
 DateUtil.addYear("20040229", 2)   = "20060228"
 DateUtil.addYear("20060228", -2)  = "20040228"
 DateUtil.addYear("19000101", 200) = "21000101"
 

Parameters:
dateStr - 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
year - 가감할 년. 0이 입력될 경우 가감이 없다
Returns:
yyyyMMdd 형식의 날짜 문자열
Throws:
java.lang.IllegalArgumentException - 날짜 포맷이 정해진 바와 다를 경우. 입력 값이 null인 경우.

addMonth

public static java.lang.String addMonth(java.lang.String dateStr,
                                        int month)

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 월을 증감한다. month는 가감할 수를 의미하며, 음수를 입력할 경우 감한다.

 DateUtil.addMonth("20010201", 12)  = "20020201"
 DateUtil.addMonth("19800229", 12)  = "19810228"
 DateUtil.addMonth("20040229", 12)  = "20050228"
 DateUtil.addMonth("20050228", -12) = "20040228"
 DateUtil.addMonth("20060131", 1)   = "20060228"
 DateUtil.addMonth("20060228", -1)  = "20060128"
 

Parameters:
dateStr - 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
month - 가감할 월. 0이 입력될 경우 가감이 없다
Returns:
yyyyMMdd 형식의 날짜 문자열
Throws:
java.lang.IllegalArgumentException - 날짜 포맷이 정해진 바와 다를 경우. 입력 값이 null인 경우.

addDay

public static java.lang.String addDay(java.lang.String dateStr,
                                      int day)

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 일(day)를 증감한다. day는 가감할 수를 의미하며, 음수를 입력할 경우 감한다.

위에 정의된 addDays 메서드는 사용자가 ParseException을 반드시 처리해야 하는 불편함이 있기 때문에 추가된 메서드이다.

 DateUtil.addDay("19991201", 62) = "20000201"
 DateUtil.addDay("20000201", -62) = "19991201"
 DateUtil.addDay("20050831", 3) = "20050903"
 DateUtil.addDay("20050831", 3) = "20050903"
 // 2006년 6월 31일은 실제로 존재하지 않는 날짜이다 -> 20060701로 간주된다
 DateUtil.addDay("20060631", 1) = "20060702"
 

Parameters:
dateStr - 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
day - 가감할 일. 0이 입력될 경우 가감이 없다
Returns:
yyyyMMdd 형식의 날짜 문자열
Throws:
java.lang.IllegalArgumentException - 날짜 포맷이 정해진 바와 다를 경우. 입력 값이 null인 경우.

getDaysDiff

public static int getDaysDiff(java.lang.String sDate1,
                              java.lang.String sDate2)

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열 dateStr1 dateStr2 사이의 일 수를 구한다.
dateStr2dateStr1 보다 과거 날짜일 경우에는 음수를 반환한다. 동일한 경우에는 0을 반환한다.

 DateUtil.getDaysDiff("20060228","20060310") = 10
 DateUtil.getDaysDiff("20060101","20070101") = 365
 DateUtil.getDaysDiff("19990228","19990131") = -28
 DateUtil.getDaysDiff("20060801","20060802") = 1
 DateUtil.getDaysDiff("20060801","20060801") = 0
 

Parameters:
dateStr1 - 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
dateStr2 - 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
Returns:
일 수 차이.
Throws:
java.lang.IllegalArgumentException - 날짜 포맷이 정해진 바와 다를 경우. 입력 값이 null인 경우.

checkDate

public static boolean checkDate(java.lang.String sDate)

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 유효한 날짜인지 검사.

 DateUtil.checkDate("1999-02-35") = false
 DateUtil.checkDate("2000-13-31") = false
 DateUtil.checkDate("2006-11-31") = false
 DateUtil.checkDate("2006-2-28")  = false
 DateUtil.checkDate("2006-2-8")   = false
 DateUtil.checkDate("20060228")   = true
 DateUtil.checkDate("2006-02-28") = true
 

Parameters:
dateStr - 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
Returns:
유효한 날짜인지 여부

checkDate

public static boolean checkDate(java.lang.String year,
                                java.lang.String month,
                                java.lang.String day)

입력한 년, 월, 일이 유효한지 검사.

Parameters:
year - 연도
month - 월
day - 일
Returns:
유효한 날짜인지 여부

convertDate

public static java.lang.String convertDate(java.lang.String strSource,
                                           java.lang.String fromDateFormat,
                                           java.lang.String toDateFormat,
                                           java.lang.String strTimeZone)
날짜형태의 String의 날짜 포맷 및 TimeZone을 변경해 주는 메서드

Parameters:
strSource - 바꿀 날짜 String
fromDateFormat - 기존의 날짜 형태
toDateFormat - 원하는 날짜 형태
strTimeZone - 변경할 TimeZone(""이면 변경 안함)
Returns:
소스 String의 날짜 포맷을 변경한 String

formatDate

public static java.lang.String formatDate(java.lang.String sDate,
                                          java.lang.String ch)
yyyyMMdd 형식의 날짜문자열을 원하는 캐릭터(ch)로 쪼개 돌려준다
 ex) 20030405, ch(.) -> 2003.04.05
 ex) 200304, ch(.) -> 2003.04
 ex) 20040101,ch(/) --> 2004/01/01 로 리턴
 

Parameters:
date - yyyyMMdd 형식의 날짜문자열
ch - 구분자
Returns:
변환된 문자열

formatTime

public static java.lang.String formatTime(java.lang.String sTime,
                                          java.lang.String ch)
HH24MISS 형식의 시간문자열을 원하는 캐릭터(ch)로 쪼개 돌려준다
     ex) 151241, ch(/) -> 15/12/31
 

Parameters:
str - HH24MISS 형식의 시간문자열
ch - 구분자
Returns:
변환된 문자열

leapYear

public java.lang.String leapYear(int year)
연도를 입력 받아 해당 연도 2월의 말일(일수)를 문자열로 반환한다.

Parameters:
year -
Returns:
해당 연도 2월의 말일(일수)

isLeapYear

public static boolean isLeapYear(int year)

입력받은 연도가 윤년인지 아닌지 검사한다.

 DateUtil.isLeapYear(2004) = false
 DateUtil.isLeapYear(2005) = true
 DateUtil.isLeapYear(2006) = true
 

Parameters:
year - 연도
Returns:
윤년 여부

getToday

public static java.lang.String getToday()
현재(한국기준) 날짜정보를 얻는다.
표기법은 yyyy-mm-dd

Returns:
String yyyymmdd형태의 현재 한국시간.

getCurrentDate

public static java.lang.String getCurrentDate(java.lang.String dateType)
현재(한국기준) 날짜정보를 얻는다.
표기법은 yyyy-mm-dd

Returns:
String yyyymmdd형태의 현재 한국시간.

convertDate

public static java.lang.String convertDate(java.lang.String sDate,
                                           java.lang.String sTime,
                                           java.lang.String sFormatStr)
날짜형태의 String의 날짜 포맷만을 변경해 주는 메서드

Parameters:
sDate - 날짜
sTime - 시간
sFormatStr - 포멧 스트링 문자열
Returns:
지정한 날짜/시간을 지정한 포맷으로 출력

getRandomDate

public static java.lang.String getRandomDate(java.lang.String sDate1,
                                             java.lang.String sDate2)
입력받은 일자 사이의 임의의 일자를 반환

Parameters:
sDate1 - 시작일자
sDate2 - 종료일자
Returns:
임의일자

toLunar

public static java.util.HashMap toLunar(java.lang.String sDate)
입력받은 양력일자를 변환하여 음력일자로 반환

Parameters:
sDate - 양력일자
Returns:
음력일자

toSolar

public static java.lang.String toSolar(java.lang.String sDate,
                                       int iLeapMonth)
입력받은 음력일자를 변환하여 양력일자로 반환

Parameters:
sDate - 음력일자
iLeapMonth - 음력윤달여부(IS_LEAP_MONTH)
Returns:
양력일자

convertWeek

public static java.lang.String convertWeek(java.lang.String sWeek)
입력받은 요일의 영문명을 국문명의 요일로 반환

Parameters:
sWeek - 영문 요일명
Returns:
국문 요일명

validDate

public static boolean validDate(java.lang.String sDate)
입력일자의 유효 여부를 확인

Parameters:
sDate - 일자
Returns:
유효 여부

validDate

public static boolean validDate(java.lang.String sDate,
                                int sWeek)
입력일자, 요일의 유효 여부를 확인

Parameters:
sDate - 일자
sWeek - 요일 (DAY_OF_WEEK)
Returns:
유효 여부

validTime

public static boolean validTime(java.lang.String sTime)
입력시간의 유효 여부를 확인

Parameters:
sTime - 입력시간
Returns:
유효 여부

addYMDtoWeek

public static java.lang.String addYMDtoWeek(java.lang.String sDate,
                                            int year,
                                            int month,
                                            int day)
입력된 일자에 연, 월, 일을 가감한 날짜의 요일을 반환

Parameters:
sDate - 날짜
year - 연
month - 월
day - 일
Returns:
계산된 일자의 요일(DAY_OF_WEEK)

addYMDtoDayTime

public static java.lang.String addYMDtoDayTime(java.lang.String sDate,
                                               java.lang.String sTime,
                                               int year,
                                               int month,
                                               int day,
                                               int hour,
                                               int minute,
                                               java.lang.String formatStr)
입력된 일자에 연, 월, 일, 시간, 분을 가감한 날짜, 시간을 포멧스트링 형식으로 반환

Parameters:
sDate - 날짜
sTime - 시간
year - 연
month - 월
day - 일
hour - 시간
minute - 분
formatStr - 포멧스트링
Returns:

datetoInt

public static int datetoInt(java.lang.String sDate)
입력된 일자를 int 형으로 반환

Parameters:
sDate - 일자
Returns:
int(일자)

timetoInt

public static int timetoInt(java.lang.String sTime)
입력된 시간을 int 형으로 반환

Parameters:
sTime - 시간
Returns:
int(시간)

validChkDate

public static java.lang.String validChkDate(java.lang.String dateStr)
입력된 일자 문자열을 확인하고 8자리로 리턴

Parameters:
sDate -
Returns:

validChkTime

public static java.lang.String validChkTime(java.lang.String timeStr)
입력된 일자 문자열을 확인하고 8자리로 리턴

Parameters:
sDate -
Returns:

getDate

public static java.lang.String getDate(java.util.Date date,
                                       java.lang.String format)
입력된 Date형을 원하는 포맷으로 변경

Parameters:
date -
format -
Returns:

convertStringToDate

public static java.util.Date convertStringToDate(java.lang.String dateStr,
                                                 java.lang.String format)
dateStr date 변환

Parameters:
dateStr -
format -
Returns:

addDays

public static java.util.Date addDays(java.util.Date date,
                                     int days)