时间工具类
private static final String DATE_PATTERN = "yyyy-MM-dd";
private static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
private static final String DATETIME_SSS_PATTERN = "yyyy-MM-dd HH:mm:ss:SSS";
private static final String DATETIME_UNSIGNED_FORMAT = "yyyyMMddHHmmss";
private static final String DATE_UNSIGNED_FORMAT = "yyyyMMdd";
private static final String DATETIME2_PATTERN = "yyyy-MM-dd HH:mm";
public static String dateTimePlusDays(String dateTime, int days) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATETIME_PATTERN);
Date date = dateFormat.parse(dateTime);
Calendar ca = Calendar.getInstance();
ca.setTime(date);
ca.add(Calendar.DATE, days);
return dateFormat.format(ca.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return dateTime;
}
public static String datePlusDays(String dateTime, int days) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_PATTERN);
Date date = dateFormat.parse(dateTime);
Calendar ca = Calendar.getInstance();
ca.setTime(date);
ca.add(Calendar.DATE, days);
return dateFormat.format(ca.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return dateTime;
}
public static String currentDateTimePlusMinutes(int minutes) {
return DateTime.now().plusMinutes(minutes).toString(DATETIME_PATTERN);
}
public static boolean dateIsEqual(String date1, String date2) {
DateTime d1 = new DateTime(date1);
DateTime d2 = new DateTime(date2);
return d1.isEqual(d2);
}
public static int dayTimesOf2Day(String day1, String day2) {
DateTime begin = DateTime.parse(day1, DateTimeFormat.forPattern(DATETIME_PATTERN));
DateTime end = DateTime.parse(day2, DateTimeFormat.forPattern(DATETIME_PATTERN));
Period p = new Period(begin, end, PeriodType.days());
return p.getDays();
}
public static int daysOfYears(String day1, String day2) {
DateTime begin = DateTime.parse(day1, DateTimeFormat.forPattern(DATETIME_PATTERN));
DateTime end = DateTime.parse(day2, DateTimeFormat.forPattern(DATETIME_PATTERN));
Period p = new Period(begin, end, PeriodType.years());
return p.getYears();
}
public static int daysOfMonth(String day1, String day2) {
DateTime begin = DateTime.parse(day1, DateTimeFormat.forPattern(DATE_PATTERN));
DateTime end = DateTime.parse(day2, DateTimeFormat.forPattern(DATE_PATTERN));
Period p = new Period(begin, end, PeriodType.months());
return p.getMonths();
}
public static long get2DaysMillis(String day1, String day2) {
DateTime begin = DateTime.parse(day1, DateTimeFormat.forPattern(DATETIME_PATTERN));
DateTime end = DateTime.parse(day2, DateTimeFormat.forPattern(DATETIME_PATTERN));
Duration d = new Duration(begin, end);
return d.getMillis();
}
public static long get2DaysMillis(String day1, String day2) {
DateTime begin = DateTime.parse(day1, DateTimeFormat.forPattern(DATETIME_PATTERN));
DateTime end = DateTime.parse(day2, DateTimeFormat.forPattern(DATETIME_PATTERN));
Duration d = new Duration(begin, end);
return d.getMillis();
}
public static long get2DaysMinutes(String day1, String day2) {
DateTime begin = DateTime.parse(day2, DateTimeFormat.forPattern(DATETIME_PATTERN));
DateTime end = DateTime.parse(day1, DateTimeFormat.forPattern(DATETIME_PATTERN));
Duration d = new Duration(begin, end);
return d.getStandardMinutes();
}
public static String getDayOfWeek(String dateStr) {
String currentWeek = "";
DateTime dt = new DateTime(dateStr);
switch (dt.getDayOfWeek()) {
case DateTimeConstants.SUNDAY:
currentWeek = "星期日";
break;
case DateTimeConstants.MONDAY:
currentWeek = "星期一";
break;
case DateTimeConstants.TUESDAY:
currentWeek = "星期二";
break;
case DateTimeConstants.WEDNESDAY:
currentWeek = "星期三";
break;
case DateTimeConstants.THURSDAY:
currentWeek = "星期四";
break;
case DateTimeConstants.FRIDAY:
currentWeek = "星期五";
break;
case DateTimeConstants.SATURDAY:
currentWeek = "星期六";
break;
default:
break;
}
return currentWeek;
}
public static Integer getDayOfWeekNum(String dateStr) {
DateTime dt = new DateTime(dateStr);
return dt.getDayOfWeek();
}
public static Date formatDate(String dateStr, String pattern) {
DateTimeFormatter formatter = DateTimeFormat.forPattern(pattern);
DateTime fromDate = DateTime.parse(dateStr, formatter);
return fromDate.toDate();
}
public static String getMondayOfDate(String date) {
LocalDate currentDate = LocalDate.parse(date);
DayOfWeek dayOfWeek = currentDate.getDayOfWeek();
int offset = DayOfWeek.MONDAY.getValue() - dayOfWeek.getValue();
LocalDate firstDayOfWeek = currentDate.plusDays(offset);
return firstDayOfWeek.toString();
}