JAVA工具类时间处理类DateUtils

废话不说,直接上码:
package util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 时间转换工具类。
*
* @author WKF
* @version 2014-11-11
*/
public class DateUtils {
/** pattern: yyyy-MM-dd HH:mm:ss */
public static final String PATTERN_1 = "yyyy-MM-dd HH:mm:ss";
/** pattern: yyyy-MM-dd */
public static final String PATTERN_2 = "yyyy-MM-dd";
/** pattern: yyyy/MM/dd HH:mm:ss */
public static final String PATTERN_3 = "yyyy/MM/dd HH:mm:ss";
【JAVA工具类时间处理类DateUtils】/** pattern: yyyy/MM/dd */
public static final String PATTERN_4 = "yyyy/MM/dd";

/** pattern: yyyyMMddHHmmss */
public static final String PATTERN_5 = "yyyyMMddHHmmss";

/** pattern: yyyyMMddHHmmss */
public static final String PATTERN_6 = "yyyy-MM-dd-HH-mm";

public static final String PATTERN_7 = "yyyy-MM";
private static Map context = new ConcurrentHashMap();
/**
* 创建DateFormat对象。
*
* @param pattern 时间模式
* @param locale 区域语言
* @return DateFormat
*/
public static DateFormat getDateFormat(String pattern, Locale locale) {
DateFormat format = null;
if (context.containsKey(pattern)) {
format = context.get(pattern);
} else {
format = new SimpleDateFormat(pattern, locale);
context.put(pattern, format);
}
return format;
}
/**
* 多少天后的时间
*
* @param day 多少天后
* @param d 原始时间
* @return date 变后时间
*/
public static Date afterTime(int day,Date d){

Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
calendar.setTimeInMillis(Calendar.getInstance().getTimeInMillis()+day*3600*24*1000);
Date date = calendar.getTime();
return date;
}

/**
* 多少天之前的时间
*
* @param day 多少天之前
* @param calendar 原始时间
* @return date 变后时间
*/
public static Date beforeTime(int day,Calendar calendar){
calendar = Calendar.getInstance();
calendar.setTimeInMillis(Calendar.getInstance().getTimeInMillis()-day*3600*24*1000);
Date date = calendar.getTime();
return date;
}
/**
* 格式化时间字符串为指定格式字符串。
*
* @param srcPattern 原时间模式
* @param desPattern 目标时间模式
* @param srcDate 原时间
* @return 格式化时间字符串
* @throws ParseException 解析异常
*/
public static String format(String srcPattern, String desPattern, String srcDate)
throws ParseException {
String ret = null;
DateFormat format = getDateFormat(srcPattern, Locale.getDefault());
Date date = format.parse(srcDate);
ret = getDateFormat(desPattern, Locale.getDefault()).format(date);
return ret;
}
/**
* 格式化时间。
*
* @param desPattern 指定时间模式
* @param date 时间
* @return 格式化时间
*/
public static String format(String desPattern, Date date) {
DateFormat format = getDateFormat(desPattern, Locale.getDefault());
return format.format(date);
}

/**
* 返回当前年份。
*
* @return year
*/
public static int getThisYear() {
return Calendar.getInstance().get(Calendar.YEAR);
}

/**
* 格式化时间。
*
* @param
* @param date 时间
* @return 格式化时间yyyy-MM-dd HH:mm:ss
* @throws ParseException
*/
public static String format1(Date date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_1);
if(null!=date){
return sdf.format(date);
}
return "";
}

/**
* 格式化时间。
*
* @param
* @param date 时间
* @return 格式化时间yyyy-MM-dd
* @throws ParseException
*/
public static String format2(Date date) {
String res = "";
try {
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_2);
if(null!=date){
res = sdf.format(date);
}
}catch (Exception e){
}
return res;
}

/**
* 格式化时间。
*
* @param
* @param date 时间
* @return 格式化时间yyyy/MM/dd HH:mm:ss
* @throws ParseException
*/
public static String format3(Date date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_3);
if(null!=date){
return sdf.format(date);
}
return "";
}

/**
* 格式化时间。
*
* @param
* @param date 时间
* @return 格式化时间yyyy/MM/dd
* @throws ParseException
*/
public static String format4(Date date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_4);
if(null!=date){
return sdf.format(date);
}
return "";
}

/**
* 格式化时间。
*
* @param
* @param date 时间
* @return 格式化时间 yyyyMMddHHmmss
* @throws ParseException
*/
public static String format5(Date date){
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_5);
if(null!=date){
return sdf.format(date);
}
return "";
}
/**
* 格式化时间。
*
* @param
* @param date 时间
* @return 格式化时间 yyyy-MM-dd HH:mm
* @throws ParseException
*/
public static String format6(Date date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_6);
if(null!=date){
return sdf.format(date);
}
return "";
}

/**
* 格式化时间。
*
* @param
* @param date 时间
* @return 格式化时间 yyyy-MM
* @throws ParseException
*/
public static String format7(Date date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_7);
if(null!=date){
return sdf.format(date);
}
return "";
}

/**
* String转Date
* @param date
* @return
* @throws ParseException
*/
public static Date stringToDate(String date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM");
Date d = null;
try {
d = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
d = new Date();
}
return d;
}

/**
* String转Date
* @param strDate 日期str
* @param pattern格式str
* @return
* @throws ParseException
*/
public static Date string2Date(String strDate, String pattern) {
if (strDate == null || strDate.equals("")) {
throw new RuntimeException("str date null");
}
if (pattern == null || pattern.equals("")) {
pattern = DateUtils.PATTERN_2;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date = null;
try {
date = sdf.parse(strDate);
} catch (ParseException e) {
throw new RuntimeException(e);
}
return date;
}

/**
* 获取时间差
* @param begin
* @param end
* @return
*/
public static long diffTime(Date begin, Date end){
long between = (end.getTime()-begin.getTime())/1000; //除以1000是为了转换成秒
return between;
}

/**
* 获取下一个月
* @param datestr 日期str(yyyy-MM格式)
* @return String
*/
public static String nextMonth(String datestr){
Date date = string2Date(datestr,PATTERN_7);
SimpleDateFormat sf=new SimpleDateFormat(PATTERN_7);
GregorianCalendar gc =new GregorianCalendar();
gc.setTime(date);
gc.add(Calendar.MONTH, +1);
gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));
return sf.format(gc.getTime());
}

/**
* 获取下一个月
* @param date 日期Date
* @return Date
*/
public static Date nextMonth(Date date){
GregorianCalendar gc =new GregorianCalendar();
gc.setTime(date);
gc.add(Calendar.MONTH, +1);
gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));
return gc.getTime();
}
/**
* 格式化是日期
* @param date
* @return
*/
public static String formatDate(Date date){
if(date == null) {
return "";
} else {
return new SimpleDateFormat("yyyy-MM-dd").format(date);
}
}
/**
* 格式化是时间
* @param date
* @return
*/
public static String formatTime(Date date){
if(date == null) {
return "";
} else {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
}
}
public static void main(String[] args) throws ParseException {
System.out.println(nextMonth("2014-12"));
System.out.println(format6(new Date(545322156)));
}

static boolean error=true;
/**
* unix时间戳转换为dateFormat
*
* @param beginDate
* @return
*/
public static String timestampToDate(String beginDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sd = sdf.format(new Date(Long.parseLong(beginDate)));
return sd;
}
/**
* 自定义格式时间戳转换
*
* @param beginDate
* @return
*/
public static String timestampToDate(String beginDate,String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
String sd="";
if(beginDate.length()==10){
sd = sdf.format(new Date(Long.parseLong(beginDate+"000")));
}else{
sd = sdf.format(new Date(Long.parseLong(beginDate)));
}
return sd;
}
/**
* 将字符串转为时间戳
*
* @param user_time
* @return
*/
public static String dateToTimestamp(String date) {
return dateToTimestamp(date, "yyyy-MM-dd HH:mm");
}

public static String dateToTimestamp(String date,String format) {
String re_time = null;
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date d;
try {
d = sdf.parse(date);
long l = d.getTime();
String str = String.valueOf(l);
re_time = str.substring(0, 10);
} catch (ParseException e) {
if(error){
System.out.println("时间格式转换错误,看看是不是格式不对");
System.out.println(e.getMessage());
}
}
return re_time;
}

}
有帮助的请关注或者评论

    推荐阅读