常用日期工具类
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
/**
* 常用日期工具类
* @author changbingbing
*
*/
public class DateUtils {
public static final String FORMAT_DATE_TIME_DEFAULT="yyyy-MM-dd HH:mm:ss";//默认的年月日时分秒格式
public static final String FORMAT_DATE_FOR_BORROWS="yyMMdd";//借款主键的年月日格式
public static final String FORMAT_DATE_FOR_DAY="yyyy-MM-dd";//一般的天格式
public static final String FORMAT_DATE_FOR_YMD000="yyyy-MM-dd 00:00:00";//yyyy-MM-dd 00:00:00
public static final String FORMAT_DATE_CH="yyyy年MM月dd日";
public static final String FORMAT_DATE_D="d";
格式化指定日期(java.util.Date)
/**
*
* @Title: formatDate
* @Description:格式化指定日期(java.util.Date)
* @param format
* @param date
* @return
* @Return: String
*
*/
public static String formatDate(String format, Date date) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
格式化指定日期(org.joda.time.DateTime)
/**
* 格式化指定日期(org.joda.time.DateTime)
* @param format
* @param dateTime
* @return
*/
public static String formatDateTime(String format, DateTime dateTime) {
return dateTime.toString(format);
}
格式化时间戳(java.sql.Timestamp)
/**
*
* @Title: formatTimeStamp
* @Description:格式化时间戳(java.sql.Timestamp)
* @param format
* @param tm
* @return
* @Return: String
*
*/
public static String formatTimeStamp(String format, Timestamp tm) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(new Date(tm.getTime()));
}
字符串转化成日期(java.util.Date)
/**
*
* @Title: parseDate
* @Description:字符串转化成日期(java.util.Date)
* @param format
* @param dateStr
* @return
* @Return: Date
*
*/
public static Date parseDate(String format, String dateStr) {
Date dateResult = null;
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
dateResult = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return dateResult;
}
字符串转化成日期(org.joda.time.DateTime)
/**
* 字符串转化成日期(org.joda.time.DateTime)
* @param format
* @param dateStr
* @return
*/
public static DateTime parseDateTime(String format, String dateStr) {
DateTime parseDateTime = null;
try {
parseDateTime = DateTimeFormat.forPattern(format).parseDateTime(dateStr);
} catch (Exception e) {
e.printStackTrace();
}
return parseDateTime;
}
字符串转化成日期2(org.joda.time.DateTime)
/**
* 字符串转化成日期2(org.joda.time.DateTime)
* @param format
* @param dateStr
* @return
*/
public static DateTime parseDateTime2(String format, String dateStr) {
DateTime parseDateTime = null;
try {
parseDateTime = DateTime.parse(dateStr, DateTimeFormat .forPattern(format));
} catch (Exception e) {
e.printStackTrace();
}
return parseDateTime;
}
计算当前日期的上一个月的开始日期和结束日期
/**
* 计算当前日期的上一个月的开始日期和结束日期
*
* @Title: calcLastStartEnd
* @Description:TODO
* @return
* @Return: DateTime[]
*
*/
public static String[] calcLastStartEnd() {
// 1.拿到当前日期
DateTime currentDate = new DateTime();
// 2.1 计算上一个月的开始日期
DateTime tempLastFirstStart = currentDate.minusMonths(1).dayOfMonth()
.withMinimumValue();
DateTime lastFirstStart = new DateTime(tempLastFirstStart.getYear(),
tempLastFirstStart.getMonthOfYear(),
tempLastFirstStart.getDayOfMonth(), 0, 0, 0);
// 2.2 计算上一个月的结束日期
DateTime tempLastFirstEnd = currentDate.minusMonths(1).dayOfMonth()
.withMaximumValue();
DateTime lastFirstEnd = new DateTime(tempLastFirstEnd.getYear(),
tempLastFirstEnd.getMonthOfYear(),
tempLastFirstEnd.getDayOfMonth(), 23, 59, 59);
// 3.封装在数组里面返回
String lastStartEnd[] = new String[] {
lastFirstStart.toString(DateUtils.FORMAT_DATE_TIME_DEFAULT),
lastFirstEnd.toString(DateUtils.FORMAT_DATE_TIME_DEFAULT) };
return lastStartEnd;
}
计算2个日期之间的差
/**
*
* @Title: daysBetween
* @Description:计算2个日期之间的差
* @param startTime
* @param endTime
* @return
* @Return: int
*
*/
public static int daysBetween(DateTime startTime,DateTime endTime){
return Days.daysBetween(startTime, endTime).getDays();
}
org.joda.time.DateTime转java.util.Date
/**
* org.joda.time.DateTime转java.util.Date
* @param dateTime
* @return
*/
public static Date toDate(DateTime dateTime){
return dateTime.toDate();
}
java.util.Date转org.joda.time.DateTime
/**
* java.util.Date转org.joda.time.DateTime
* @param date
* @return
*/
public static DateTime toDateTime(Date date){
return new DateTime(date);
}