Java로 유용하게 쓸수있는 Date 함수를 정리 해보았다. 아래의 코드를 참고.
소스
package kr.whitelife.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
/**
* <p>
* 2012-12-03 날짜 관련 유틸
* </p>
*
* @author whitelife
* @see Calendar
* @see Date
* @see SimpleDateFormat
* @see String
* @see ParseException
* @since 1.6
* @version 0.1.1
*/
public class DateUtil {
/**
* DateFormat 생성
* @param pattern
* @return
*/
private static SimpleDateFormat createSimpleDateFormat(String pattern) {
if (pattern == null) {
return new SimpleDateFormat();
} else {
return new SimpleDateFormat(pattern, Locale.KOREAN);
}
}
/**
* Calender 생성
* @param date
* @return
*/
private static Calendar createCalender(Date date) {
Calendar calendar = Calendar.getInstance(Locale.KOREAN);
calendar.setTime(date);
return calendar;
}
/**
* 현재 날짜 문자열 리턴
* @param pattern
* @return
*/
public static String nowDateToString(String pattern) {
return createSimpleDateFormat(pattern).format(new Date());
}
/**
* 날짜 문자열 리턴
* @param pattern
* @param date
* @return
*/
public static String dateToString(String pattern, Date date) {
return createSimpleDateFormat(pattern).format(date);
}
/**
* 현재 날짜 문자열 리턴 [yyyy-MM-dd]
* @return
*/
public static String nowDateToBasicString() {
return createSimpleDateFormat("yyyy-MM-dd").format(new Date());
}
/**
* 날짜 문자열 리턴 [yyyy-MM-dd]
* @param date
* @return
*/
public static String dateToBasicString(Date date) {
return createSimpleDateFormat("yyyy-MM-dd").format(date);
}
/**
* 현재 날짜 문자열 리턴 [yyyyMMdd]
* @return
*/
public static String nowDateToBasic2String() {
return createSimpleDateFormat("yyyyMMdd").format(new Date());
}
/**
* 날짜 문자열 리턴 [yyyyMMdd]
* @param date
* @return
*/
public static String dateToBasic2String(Date date) {
return createSimpleDateFormat("yyyyMMdd").format(date);
}
/**
* 문자열 입력 후 날짜 객체 리턴
* @param pattern
* @param source
* @return
*/
public static Date stringToDate(String pattern, String source) {
try {
return createSimpleDateFormat(pattern).parse(source);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
/**
* 문자열 입력 후 날짜 객체 리턴 [yyyy-MM-dd]
* @param pattern
* @param source
* @return
*/
public static Date stringToBasicDate(String source) {
try {
return createSimpleDateFormat("yyyy-MM-dd").parse(source);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
/**
* 문자열 입력 후 날짜 객체 리턴 [yyyyMMdd]
* @param pattern
* @param source
* @return
*/
public static Date stringToBasic2Date(String source) {
try {
return createSimpleDateFormat("yyyyMMdd").parse(source);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
/**
* 이전 년도 구하기 [현재 날짜 기준]
* @param year
* @return
*/
public static Date prevYear(int year) {
return prevYear(year, new Date());
}
/**
* 이전 년도 구하기
* @param year
* @param date
* @return
*/
public static Date prevYear(int year, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.YEAR, year * -1);
return calendar.getTime();
}
/**
* 이후 년도 구하기 [현재 날짜 기준]
* @param year
* @return
*/
public static Date nextYear(int year) {
return nextYear(year, new Date());
}
/**
* 이후 년 구하기
* @param year
* @param date
* @return
*/
public static Date nextYear(int year, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.YEAR, year);
return calendar.getTime();
}
/**
* 이전 달 구하기 [현재 날짜 기준]
* @param month
* @return
*/
public static Date prevMonth(int month) {
return prevMonth(month, new Date());
}
/**
* 이전 달 구하기
* @param month
* @param date
* @return
*/
public static Date prevMonth(int month, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.MONTH, month * -1);
return calendar.getTime();
}
/**
* 이후 달 구하기 [현재 날짜 기준]
* @param month
* @return
*/
public static Date nextMonth(int month) {
return nextMonth(month, new Date());
}
/**
* 이후 달 구하기
* @param month
* @param date
* @return
*/
public static Date nextMonth(int month, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.MONTH, month);
return calendar.getTime();
}
/**
* 이전 날짜 구하기 [현재 날짜 기준]
* @param day
* @return
*/
public static Date prevDay(int day) {
return prevDay(day, new Date());
}
/**
* 이전 날짜 구하기
* @param day
* @param date
* @return
*/
public static Date prevDay(int day, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.DATE, day * -1);
return calendar.getTime();
}
/**
* 이후 날짜 구하기 [현재 날짜 기준]
* @param day
* @return
*/
public static Date nextDay(int day) {
return nextDay(day, new Date());
}
/**
* 이후 날짜 구하기
* @param day
* @param date
* @return
*/
public static Date nextDay(int day, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.DATE, day);
return calendar.getTime();
}
/**
* 이전 시 구하기
* @param hour
* @param date
* @return
*/
public static Date prevHour(int hour, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.HOUR, hour * -1);
return calendar.getTime();
}
/**
* 이후 시 구하기
* @param hour
* @param date
* @return
*/
public static Date nextHour(int hour, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.HOUR, hour);
return calendar.getTime();
}
/**
* 이전 분 구하기
* @param minute
* @param date
* @return
*/
public static Date prevMinute(int minute, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.MINUTE, minute);
return calendar.getTime();
}
/**
* 이후 분 구하기
* @param minute
* @param date
* @return
*/
public static Date nextMinute(int minute, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.MINUTE, minute);
return calendar.getTime();
}
/**
* 이전 초 구하기
* @param second
* @param date
* @return
*/
public static Date prevSecond(int second, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.SECOND, second);
return calendar.getTime();
}
/**
* 이후 초 구하기
* @param second
* @param date
* @return
*/
public static Date nextSecond(int second, Date date) {
Calendar calendar = createCalender(date);
calendar.add(Calendar.SECOND, second);
return calendar.getTime();
}
}
사용 방법
public static void main(String[] args) {
System.out.println(dateToString("yyyy-MM-dd a HH:mm:ss", DateUtil.nextYear(1)));
System.out.println(DateUtil.nowDateToBasicString());
System.out.println(DateUtil.nowDateToBasic2String());
}
결과
2012-12-03
20121203
다른 함수 들도 위와 같은 방법으로 이용 하면 된다.
좋은 의견이나 개선점은 댓글로 부탁 드려요 !!!
'Java' 카테고리의 다른 글
Java Console 게시판 만들기 - 3 (0) | 2013.11.12 |
---|---|
Java Console 게시판 만들기 - 2 (0) | 2013.11.11 |
Java Console 게시판 만들기 (1) | 2013.11.10 |
실행 시 Exception in thread "main" java.lang.UnsupportedClassVersionError: httpsclient : Unsupported major.minor version 51.0 해결 하기 (0) | 2013.04.24 |
JDBC로 Query 작성하기 (Mysql) (0) | 2012.12.19 |