时间的工具是开发的时候用的比较多的,几乎每个项目都要特定的写一个DateHelper类来处理一些时间转换的问题
1.根据日期获得周
/**
* 根据日期获得星期
* @param date
*/
public static String getWeekOfDate(Date date) {
if (date == null) {
return null;
}
String[] weekDaysCode = { "0", "1", "2", "3", "4", "5", "6" };
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int intWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
return weekDaysCode[intWeek];
}
2.获得当前周的所有日期
/**
* 根据日期获得所在周的日期
* @param mdate
* @return
*/
public static List<Date> dateGetWeek(Date date) {
if (date == null) {
return null;
}
int weekday = Integer.parseInt(getWeekOfDate(date));
if (weekday == 0) {
weekday = 7;
}
Date fdate;
List<Date> list = new ArrayList<Date>();
Long fTime = date.getTime() - weekday * 24 * 3600000;
for (int i = 1; i <= 7; i++) {
fdate = new Date();
fdate.setTime(fTime + (i * 24 * 3600000));
list.add(i - 1, fdate);
}
return list;
}
3.判断两天是否在一天
/**
* 判断两个日期是否在同一周(比较所在周的第一天是否相同)
* @param mdate
* @return
*/
public static boolean compare2dateIn1week(Date d1, Date d2) {
if (d1 == null || d2 == null) {
return false;
}
d1 = getFistWeekDay(d1) == null ? null : getFistWeekDay(d1);
d2 = getFistWeekDay(d2) == null ? null : getFistWeekDay(d2);
if (d1 != null && d2 != null) {
if (DateUtil.Date2String(d1, "yyyy-MM-dd").equals(DateUtil.Date2String(d2, "yyyy-MM-dd"))) {
return true;
} else {
return false;
}
} else {
return false;
}
}
4.根据日期获得下一天
/**
* 根据日期获得下一天
* @param mdate
* @return
*/
public static Timestamp getNextDay(Date date) {
if (date == null) {
return null;
}
Long fTime = date.getTime() + 1 * 24 * 3600000;
return new Timestamp(fTime);
}
/**
* 根据日期获得一个月的第一天
* @param mdate
* @return
*/
public static Timestamp getMonthFirstDay(Timestamp now) {
if (now == null) {
return null;
}
Calendar monthCalendar = Calendar.getInstance();
monthCalendar.setTime(now);
int year = monthCalendar.get(Calendar.YEAR);
int month = monthCalendar.get(Calendar.MONTH) + 1;
String monthFirstDay = year +"-" + month +"-1";
return string2TimeStamp(monthFirstDay,"yyyy-M-d");
}
6.获得一周的第一天
/**
* 根据日期获得所在周的第一天比如2013-4-10 周三 得到2013-4-8(周一)
* @param mdate
* @return
*/
public static Timestamp getFistWeekDay(Date date) {
if (date == null) {
return null;
}
int weekday = Integer.parseInt(getWeekOfDate(date));
if (weekday == 0) {
weekday = 7;
}
Long fTime = date.getTime() - (weekday - 1) * 24 * 3600000;
return new Timestamp(fTime);
}
7.间隔日期
/**
* 间隔日期
*/
public static int internal(Timestamp a, Timestamp b) {
if (a == null || b == null) {
return -1;
}
return Long.valueOf((a.getTime() - b.getTime()) / (24 * 3600000)).intValue();
}
8.timestamp 转换为date
public static Date timestampToDate(Timestamp tt) {
return new Date(tt.getTime());
}