Date,DateTime,LocalDate,String之间的相互转化
/**
* Date转DateTime
*
* @param date
* @return
*/
public static DateTime dateToDateTime(Date date) {
return new DateTime(date.getTime());
}
/**
* DateTime转Date
*
* @param dateTime
* @return
*/
public static Date dateTimeToDate(DateTime dateTime) {
return dateTime.toDate();
}
/**
* 获取当前日期的DateTime
*
* @return
*/
public static DateTime currents() {
return DateTime.now(DateTimeZone.UTC);
}
public static DateTimeZone getBeiJingDateTimeZone() {
return DateTimeZone.forID("Asia/BeiJing");
}
/**
* date转固定格式
*
* @param date
* @param formate
* @return
*/
public static String formatToString(Date date, String formate) {
if (date == null) {
return "";
} else {
SimpleDateFormat sf = new SimpleDateFormat(formate);
return sf.format(date);
}
}
/**
* 字符串类型的时间格式转Date
*
* @param dateString
* @param formate
* @return
* @throws ParseException
*/
public static Date formateToDate(String dateString, String formate) throws ParseException {
SimpleDateFormat sf = new SimpleDateFormat(formate);
Date parse = sf.parse(dateString);
return parse;
}
/**
* 获取一周中那一天
*
* @param dateTime
* @return
*/
public static String getDaysOfWeek(DateTime dateTime) {
DateTimeFormatter formatter = DateTimeFormat.forPattern("E").withLocale(Locale.CHINESE);
return formatter.print(dateTime);
}
/**
* 获取两个时间点中的间隔
*
* @param startTime
* @param endTime
* @param unit
* @return
*/
public static long getTimeInterval(Date startTime, Date endTime, TimeUnit unit) {
long l = startTime.getTime() - endTime.getTime();
return unit.convert(l, TimeUnit.MILLISECONDS);
}
public static int getYear(Date date, TimeZone timeZone) {
Calendar c = Calendar.getInstance(timeZone);
c.setTime(date);
return c.get(Calendar.YEAR);
}
public static int getDay(Date date, TimeZone timeZone) {
Calendar c = Calendar.getInstance(timeZone);
c.setTime(date);
return c.get(Calendar.DAY_OF_MONTH);
}
public static int getMonth(Date date, TimeZone timeZone) {
Calendar c = Calendar.getInstance(timeZone);
c.setTime(date);
return c.get(Calendar.MONTH) + 1;
}
public static int localDateToInt(LocalDate date) {
return date.getYear() * 10000 + date.getMonthOfYear() * 100 + date.getDayOfMonth();
}
public static LocalDate intToLocalDate(int intdate) {
int year = intdate / 10000;
int month = (intdate - intdate / 10000) / 100;
int day = intdate - year * 10000 - month * 100;
return new LocalDate(year, month, day);
}
public static LocalDate current() {
return DateUtils.currents().toLocalDate();
}
public static String formateStandardPattern(DateTime dateTime) {
DateTimeFormatter sdf = DateTimeFormat.forPattern(STANDARD_PTTERN);
return sdf.print(dateTime);
}
public static String formateYearMonthDayPattern(DateTime dateTime) {
DateTimeFormatter sdf = DateTimeFormat.forPattern(YEAR_MONTH_DAY_PATTERN);
return sdf.print(dateTime);
}
public static String getClassicTypePattern(DateTime dateTime) {
DateTimeFormatter sdf = DateTimeFormat.forPattern(YMDHMS_PATTERN);
return sdf.print(dateTime.toDateTime(getBeiJingDateTimeZone()));
}
public static int diffDay(DateTime startTime, DateTime endTime) {
Days days = Days.daysBetween(startTime, endTime);
return days.getDays();
}