關於日期的java函數

 import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DateUtil {

public static String dateTimeChange(Date source) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String changeTime = format.format(source);
return changeTime;
}

public static String shortDate(Date aDate) {
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
return formatter.format(aDate);
}

public static String nowDate() {
String iDate="";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String str= formatter.format(new Date());
String[] date = str.split("-");
if (date.length >= 3) {
iDate = date[0] + "/" + date[1] + "/" + date[2]+"";
} else {
iDate = str;
}
return iDate;
}

public static String mailDate(Date aDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");
return formatter.format(aDate);
}
public static String dateParser(Date aDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(aDate);
}

public static Date parser(String strDate) {
; strDate = strDate.replace("/", "-");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
return sdf.parse(strDate);
} catch (Exception e) {
return null;
}
}

public static Date parser(String strDate, String formatter) {
SimpleDateFormat sdf = new SimpleDateFormat(formatter);
try {
return sdf.parse(strDate);
} catch (Exception e) {
return null;
}
}

public static String parser(Date date,String formatter){
SimpleDateFormat sdf = new SimpleDateFormat(formatter);
try {
return sdf.format(date);
} catch (Exception e) {
return null;
}
}

public static Date addMonth(Date myDate, int amount) {
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(myDate);
boolean isEndDayOfMonth_old = cal
.getActualMaximum(GregorianCalendar.DAY_OF_MONTH) == cal
.get(GregorianCalendar.DAY_OF_MONTH);
cal.add(GregorianCalendar.MONTH, amount);
boolean isEndDayOfMonth_new = cal
.getActualMaximum(GregorianCalendar.DAY_OF_MONTH) == cal
.get(GregorianCalendar.DAY_OF_MONTH);
if (isEndDayOfMonth_old && !isEndDayOfMonth_new) {
cal.set(GregorianCalendar.DATE, cal
.getActualMaximum(GregorianCalendar.DAY_OF_MONTH));
}
return cal.getTime();
}

public static Date addDay(Date myDate, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(myDate);
cal.add(Calendar.DAY_OF_MONTH, amount);
return cal.getTime();
}

public static Date addMinute(Date myDate, int amount) {
Calendar cal = Calendar.getInstance();
cal.setTime(myDate);
int minute = 0;
amount = -(amount);

if (amount > 60) {

int hour = (int) amount / 60;

if (hour * 60 > amount) {
minute = hour * 60 - amount;

cal.add(Calendar.HOUR_OF_DAY, -hour);
cal.add(Calendar.MINUTE, minute);

} else if (hour * 60 < amount) {

minute = amount - hour * 60;
cal.add(Calendar.HOUR_OF_DAY, -hour);
cal.add(Calendar.MINUTE, -minute);

} else {
cal.add(Calendar.HOUR_OF_DAY, -hour);
}

} else {

cal.add(Calendar.MINUTE, -amount);
}
return cal.getTime();
}

public static Date addYear(Date myDate, int amount) {
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(myDate);
boolean isEndDayOfMonth_old = cal
.getActualMaximum(GregorianCalendar.DAY_OF_MONTH) == cal
.get(GregorianCalendar.DAY_OF_MONTH);
cal.add(GregorianCalendar.YEAR, amount);
boolean isEndDayOfMonth_new = cal
.getActualMaximum(GregorianCalendar.DAY_OF_MONTH) == cal
.get(GregorianCalendar.DAY_OF_MONTH);
if (isEndDayOfMonth_old && !isEndDayOfMonth_new) {
cal.set(GregorianCalendar.DATE, cal
.getActualMaximum(GregorianCalendar.DAY_OF_MONTH));
}
return cal.getTime();
}

public static int getWeekDay(Date myDate) {
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(myDate);
return cal.get(GregorianCalendar.DAY_OF_WEEK);
}

public static int getConvertWeekDay(Date myDate) {
int day = getWeekDay(myDate);
int result = day - 1;
if (result == 0)
result = 7;
return result;
}  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章