本来以为有了date4j就万事无休了,结果在工作的时候发觉有不少脚步仅仅需要两三个简单的class执行一下就可以完成任务了。也就是说即使是date4j,相对于这两三个甚至是一个class来说还是过于臃肿了。于是乎自己写了个简单的日期封装类。
package com.kohri.date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* @descriped a simple class for date
* @author Kohri
* @date 2012/4/22
* @version 1.0
*/
public class SimpleDate {
private static String defaultFormat = "yyyy-MM-dd HH:mm:ss";
private static SimpleDateFormat sf = null ;
private static Calendar cal = Calendar.getInstance();
private static Date date = null;
/**
* get current date time (default 'yyyy-MM-dd HH:mm:ss')
* @return string
*/
public static String getDateNow() {
sf = new SimpleDateFormat(defaultFormat);
String currentTime = "";
currentTime = sf.format(new Date());
return currentTime;
}
/**
* get year (default now)
* @return int
*/
public static int getYear(){
int currentYear = cal.get(Calendar.YEAR);
return currentYear;
}
/**
* get mon (default now)
* @return int
*/
public static int getMonth(){
int currentMonth = cal.get(Calendar.MONTH) + 1;
return currentMonth;
}
/**
* get day of month (default now)
* @return int
*/
public static int getDay(){
int currentDayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
return currentDayOfMonth;
}
/**
* get hours (default now)
* @return int
*/
public static int getHours(){
int currentHours = cal.get(Calendar.HOUR_OF_DAY);
return currentHours;
}
/**
* get minutes (default now)
* @return int
*/
public static int getMinutes(){
int currentMinute = cal.get(Calendar.MINUTE);
return currentMinute;
}
/**
* get seconds (default now)
* @return int
*/
public static int getSeconds(){
int currentSecond = cal.get(Calendar.SECOND);
return currentSecond;
}
/**
* string change to date
* @param strDate
* @param dateFormat
* @return date
*/
public static Date toDate(String strDate, String dateFormat){
if(strDate == null || strDate.length() == 0){
return null;
}
Date date = null;
DateFormat df = new SimpleDateFormat(dateFormat);
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* Returns this Calendar's time value in milliseconds
* @param p_date
* @return long
*/
public static long getMillisOfDate(Date date) {
cal.setTime(date);
return cal.getTimeInMillis();
}
/**
* compare two date
* return the greater date
* if equals return null
* @param strStartDate
* @param strEndDate
* @return date
*/
public static Date getGreaterDate(String strStartDate, String strEndDate){
Date date = null;
Date startDate = toDate(strStartDate, "yyyy-MM-dd");
Date endDate = toDate(strEndDate, "yyyy-MM-dd");
long startTime = getMillisOfDate(startDate);
long endTime = getMillisOfDate(endDate);
if((startTime - endTime) > 0){
return startD