package com.chinacreator.videoalliance.order.util;
import org.apache.log4j.Logger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* DateFormat.SHORT: 07-2-1
* DateFormat.MEDIUM: 2007-2-1
* DateFormat.LONG: 2007年2月1日
* DateFormat.FULL: 2007年2月1日 星期四
*
* @author 周振华
*
*/
public class DateUtil {
private static final Logger log = Logger.getLogger(DateUtil.class);
/**
* 获取某个月份的最后的一天
*
* @param date
* @return
*/
public static Date getLastDateOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
return calendar.getTime();
}
/**
* 获得该月的最后一天
*
* @param yearMonth
* 年年年年月月
* @return
*/
public static String getLastDateOfMonth(String yearMonth) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
try {
year = Integer.parseInt(yearMonth.substring(0, 4));
month = Integer.parseInt(yearMonth.substring(4, 6)) - 1;
date = c.get(Calendar.DATE);
} catch (Exception e) {
// 出现异常默认当前月
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
date = c.get(Calendar.DATE);
}
c.set(year, month, date);
return String.valueOf(c.getActualMaximum(Calendar.DAY_OF_MONTH));
}
/**
* 获取当月的最后一天
*
* @return
*/
public static int getLastDayOfCurrMonth() {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
c.set(year, month, date);
return c.getActualMaximum(Calendar.DAY_OF_MONTH);
}
/**
* 把日期从String类型转化为date类型
* @param date
* @param format
* @return
*/
public static Date getDate(String date,String format){
Date dt = null;
try {
dt = new SimpleDateFormat(format).parse(date);
} catch (ParseException e) {
log.error("要格式化的日期字符串格式不正确: "+format + date);
}
return dt;
}
/**
* 日期转换成字符串,如果需转换的日期为NULL,则返回为NULL(默认格式为日期)
*
* @param date
* Date 需转换的日期
* @return String 日期字符串
*/
public static String formatMedium(Date date,String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
public static String format(Date date,String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
/**
* 获得当月的第一天
* @return
*/
public static String getFirstDay(String format) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.DAY_OF_MONTH, 1);
return formatMedium(calendar.getTime(),format);
}
public static void main(String[] args) {
}
}