日期和时间模式

// 格式:年-月-日 小时:分钟:秒  
public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss";

// 格式:年-月-日 小时:分钟
public static final String FORMAT_TWO = "yyyy-MM-dd HH:mm";

// 格式:年月日 小时分钟秒
public static final String FORMAT_THREE = "yyyyMMdd-HHmmss";

// 格式:年-月-日
public static final String FORMAT_FOUR = "yyyy-MM-dd";

// 格式:年月日
public static final String FORMAT_FOUR_NO = "yyyyMMdd";

// 格式:年-月
public static final String FORMAT_FIVE = "yyyy-MM";

// 格式:年月
public static final String FORMAT_SIX = "yyyyMM";

static final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四","星期五", "星期六" };

private static final SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


yyyyMMdd 转换为 yyyy-MM-dd



public static String stringTostring(String str){  
new SimpleDateFormat(FORMAT_FOUR_NO);
new SimpleDateFormat(FORMAT_FOUR);
"";
try
{
sfstr = sf2.format(sf1.parse(str));
}
catch (Exception e) {
e.printStackTrace();
}
return sfstr;
}


把符合日期格式的字符串转换为日期类型



public static java.util.Date stringtoDate(String dateStr, String format)  
{
null;
new SimpleDateFormat(format);
try
{
false);//指定日期\时间解析是否不严格
d = formater.parse(dateStr);
}
catch (Exception e)
{
e.printStackTrace();
}
return d;
}



把日期类型转换为字符串




public static String dateToString(java.util.Date date, String format)  
{
"";
new SimpleDateFormat(format);
try
{
result = formater.format(date);
}
catch (Exception e)
{
e.printStackTrace();
}
return result;
}

对某个日期进行处理相加减



/**
* @param dateKind 指定处理年、月、日
* @param dateStr 指定日期
* @param amount 指定长度
* @return
*/
public static String dateSub(int dateKind, String dateStr, int amount)
{
Date date = stringtoDate(dateStr, FORMAT_ONE);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(dateKind, amount);
return dateToString(calendar.getTime(), FORMAT_ONE);
}

返回一个相加减后的日期 yyyy-MM-dd


两个日期相减得到的秒数

public static String dateSub(int days)  
{
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, days);
return dateToString(calendar.getTime(), FORMAT_FOUR);
}



public static long timeSub(String firstTime, String secTime)  
{
long first = stringtoDate(firstTime, FORMAT_ONE).getTime();
long second = stringtoDate(secTime, FORMAT_ONE).getTime();
return (second - first) / 1000;
}



获取某年某月的天数 Method1



public static int getDaysOfMonth(String year, String month)  
{
"-"+month, FORMAT_FIVE);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}



获取某年某月的天数 Method2



public static int getDaysOfMonth(int year, int month)  
{
Calendar calendar = Calendar.getInstance();
1, 1);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}



返回日期的年



public static int getYear(Date date)  
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}



返回当前年份

public static int getTodayYear()  
{
return getYear(new Date());
}


返回日期的月份,1-12

public static int getMonth(Date date)  
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH) + 1;
}



返回当前月份



public static int getTodayMonth()  
{
return getMonth(new Date());
}



计算两个日期相差的天数,如果date2 > date1 返回正数,否则返回负数


public static long dayDiff(Date date1, Date date2)  
{
return (date2.getTime() - date1.getTime()) / 86400000;
}

获取当前日期字符串,格式"yyyy-MM-dd HH:mm:ss"



public static String getNow()  
{
Calendar today = Calendar.getInstance();
return dateToString(today.getTime(), FORMAT_ONE);
}



获取当前时间的指定格式



public static String getCurrDate(String format)  
{
return dateToString(new Date(), format);
}



判断日期是否有效,包括闰年的情况



public static boolean isDate(String date)  
{
new StringBuffer(
"^((\\d{2}(([02468][048])|([13579][26]))-?((((0?");
"[13578])|(1[02]))-?((0?[1-9])|([1-2][0-9])|(3[01])))");
"|(((0?[469])|(11))-?((0?[1-9])|([1-2][0-9])|(30)))|");
"(0?2-?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][12");
"35679])|([13579][01345789]))-?((((0?[13578])|(1[02]))");
"-?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))");
"-?((0?[1-9])|([1-2][0-9])|(30)))|(0?2-?((0?[");
"1-9])|(1[0-9])|(2[0-8]))))))");
Pattern p = Pattern.compile(reg.toString());
return p.matcher(date).matches();
}