java針對於時間轉換的DateUtils工具類

NO IMAGE

本文例項為大家分享了時間轉換的DateUtils工具類,供大家參考,具體內容如下


import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;
/**
* 時間日期工具類
* 
* @author wul
* 2015-12-31
*/
public class DateUtil {
public static final String DATE_NORMAL_FORMAT = "yyyy-MM-dd"; 
public static final String DATETIME_NORMAL_FORMAT = "yyyy-MM-dd HH:mm:ss"; 
public static final String DATE_COMPACT_FORMAT = "yyyyMMdd"; 
public static final String DATETIME_COMPACT_FORMAT = "yyyyMMddHHmmss"; 
public static final String YM_NORMAL_FORMAT = "yyyy-MM"; 
public static final String YM_COMPACT_FORMAT = "yyyyMM"; 
/**
* String轉Timestamp
* @param dateStr
* @return
* @author wul
* 2016-1-17
*/
public static Timestamp stringToTimestamp(String dateStr) {
try { 
if(dateStr.length() <= 10) {
dateStr  = " 00:00:00";
}
return Timestamp.valueOf(dateStr); 
} catch (Exception e) { 
e.printStackTrace(); 
return null;
} 
}
/**
* String轉Date
* @param dateStr
* @param format
* @return
* @author wul
* 2016-1-17
*/
public static Date stringToDate(String dateStr, String format) {
if(dateStr == null || "".equals(dateStr)){
return null;
}
Date date = null; 
//注意format的格式要與日期String的格式相匹配 
SimpleDateFormat sdf = new SimpleDateFormat(format); 
try { 
date = sdf.parse(dateStr); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
return date;
}
/**
* Date轉String
* @param date
* @param format
* @return
* @author wul
* 2016-1-17
*/
public static String dateToString(Date date, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
String currentDate = sdf.format(date);
return currentDate;
}
/**
* Date轉Timestamp
* @param date
* @return
* @author wul
* 2016-1-17
*/
public static Timestamp dateToTimestamp(Date date) {
Timestamp ts = new Timestamp(date.getTime());
return ts;
}
/**
* Timestamp轉String
* @param ts
* @return
* @author wul
* 2016-1-17
*/
public static String timestampToString(Timestamp ts) {
String tsStr = null; 
SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_NORMAL_FORMAT); 
try { 
tsStr = sdf.format(ts); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
return tsStr;
}
/**
* Timestamp轉Date
* @param ts
* @return
* @author wul
* 2016-1-17
*/
public static Date timestampToDate(Timestamp ts) {
return ts;
}
/**
* 獲得當前時間並格式化:yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getCurrentTimeNormal() {
SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_NORMAL_FORMAT);
String currentDate = sdf.format(new Date());
return currentDate;
}
/**
* 獲得當前時間並格式化:yyyyMMddHHmmss
* @return
*/
public static String getCurrentTimeCompact() {
SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_COMPACT_FORMAT);
String currentDate = sdf.format(new Date());
return currentDate;
}
/**
* 獲得當前時間並格式化:yyyy-MM-dd
* @return
*/
public static String getCurrentDateNormal() {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_NORMAL_FORMAT);
String currentDate = sdf.format(new Date());
return currentDate;
}
/**
* 獲得當前時間並格式化:yyyyMMdd
* @return
*/
public static String getCurrentDateCompact() {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_COMPACT_FORMAT);
String currentDate = sdf.format(new Date());
return currentDate;
}
/**
* 將20101202時間格式化為2010-12-02
* 
* @param DateString 時間格式:yyyyMMdd
* @return
*/
public static String getDateCompactToNormal(String DateString){
StringBuilder sb = new StringBuilder();
sb.append(DateString.substring(0,4)).append("-").append(DateString.subSequence(4, 6)).append("-").append(DateString.substring(6, 8));
return sb.toString();
}
/**
* 將20101202101423時間格式化為2010-12-02 10:14:23
* 
* @param DateString 時間格式:yyyyMMddHHmmss
* @return
*/
public static String getDateTimeCompactToNormal(String DateString){
StringBuilder sb = new StringBuilder();
sb.append(DateString.substring(0,4)).append("-").append(DateString.subSequence(4, 6)).append("-").append(DateString.substring(6, 8))
.append(" ").append(DateString.substring(8, 10)).append(":").append(DateString.substring(10, 12)).append(":").append(DateString.substring(12));
return sb.toString();
}
/**
* 把介面輸入的時間轉為間湊的時間字串
* 將2010-12-02 10:14:23時間格式化為20101202101423
* @param dateNormalStr String
* @return String
*/
public static String getCompactString(String dateNormalStr) {
StringBuffer ret = new StringBuffer();
try {
ret.append(dateNormalStr.substring(0, 4));
ret.append(dateNormalStr.substring(5, 7));
ret.append(dateNormalStr.substring(8, 10));
ret.append(dateNormalStr.substring(11, 13));
ret.append(dateNormalStr.substring(14, 16));
ret.append(dateNormalStr.substring(17, 19));
} catch (Exception ex) {
// 如果字串不夠長度,則返回前面的部分
}
return ret.toString();
}
/**
* 將20101202(101423)時間格式 獲得年份
* @param DateString  時間格式:yyyyMMdd(HHmmss)
* @return
*/
public static String getYear(String DateString){
return DateString.substring(0,4);
}
/**
* 將20101202(101423)時間格式 獲得月份
* @param DateString  時間格式:yyyyMMdd(HHmmss)
* @return
*/
public static String getMonth(String DateString){
return DateString.substring(4,6);
}
/**
* 將20101202時間格式 獲得日期
* @param DateString  時間格式:yyyyMMdd
* @return
*/
public static String getDayNoTime(String DateString){
return DateString.substring(6);
}
/**
* 獲取當前日期之前的日期,按天數向前推
* @param numVal
* @param dateFormat
* @return
* @author wul
* 2016-1-17
*/
public static String getBeforeDatePlusDay(int numVal, String dateFormat) {
Calendar calendar = Calendar.getInstance();
long currentTimeMillis = calendar.getTimeInMillis();
long hourInMillis = 60 * 60 * 1000;
long dVal = numVal * 24 * hourInMillis;
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
String currentDate = sdf.format(currentTimeMillis - dVal);
return currentDate;
}
/**
* 獲取當前日期之前的日期,按天數向前推
* @param numVal
* @param dateFormat
* @return
* @author wul
* 2016-1-17
*/
public static String getAfterDatePlusDay(int numVal, String dateFormat) {
Calendar calendar = Calendar.getInstance();
long currentTimeMillis = calendar.getTimeInMillis();
long hourInMillis = 60 * 60 * 1000;
long dVal = numVal * 24 * hourInMillis;
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
String currentDate = sdf.format(currentTimeMillis   dVal);
return currentDate;
}
/**
* 獲取當前日期之前的日期,按小時向前推
* @param numVal
* @param dateFormat
* @return
* @author wul
* 2016-1-17
*/
public static String getBeforeDatePlusHour(int numVal, String dateFormat) {
Calendar calendar = Calendar.getInstance();
long currentTimeMillis = calendar.getTimeInMillis();
long hourInMillis = 60 * 60 * 1000;
long dVal = numVal * hourInMillis;
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
String currentDate = sdf.format(currentTimeMillis - dVal);
return currentDate;
}
/**
* 獲取當前日期之前的日期,按小時向前推
* @param numVal
* @param dateFormat
* @return
* @author wul
* 2016-1-17
*/
public static String getAfterDatePlusHour(int numVal, String dateFormat) {
Calendar calendar = Calendar.getInstance();
long currentTimeMillis = calendar.getTimeInMillis();
long hourInMillis = 60 * 60 * 1000;
long dVal = numVal * hourInMillis;
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
String currentDate = sdf.format(currentTimeMillis   dVal);
return currentDate;
}
/**
* 兩個日期相差天數
* @param beginDate
* @param endDate
* @return
* @author wul
* 2016-1-18
*/
public static int daysBetween(Date beginDate, Date endDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(beginDate);
long time1 = cal.getTimeInMillis();
cal.setTime(endDate);
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) / (1000 * 3600 * 24);
return Integer.parseInt(String.valueOf(between_days));
}
/**
* 獲取某月天數
* @param year
* @param month
* @return
* @author wul
* 2016-1-18
*/
public static int getMonthdays(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
return cal.getActualMaximum(Calendar.DATE);
}
/**
* 給時間加減年份
* @param date
* @param plusTime
* @return
* @author wul
* 2016-1-18
*/
public static Date getDatePlusYear(Date date, int plusTime) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.YEAR, plusTime);
Date d = cal.getTime();
return d;
}
/**
* 給時間加減月份
* @param date
* @param plusTime
* @return
* @author wul
* 2016-1-18
*/
public static Date getDatePlusMonth(Date date, int plusTime) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, plusTime);
Date d = cal.getTime();
return d;
}
/**
* 給時間加減天數
* @param date
* @param plusTime
* @return
* @author wul
* 2016-1-18
*/
public static Date getDatePlusDay(Date date, int plusTime) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, plusTime);
Date d = cal.getTime();
return d;
}
/**
* 給時間加減小時
* @param date
* @param plusTime
* @return
* @author wul
* 2016-1-18
*/
public static Date getDatePlusHour(Date date, int plusTime) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR, plusTime);
Date d = cal.getTime();
return d;
}
/**
* 給時間加減分鐘
* @param date
* @param plusTime
* @return
* @author wul
* 2016-1-18
*/
public static Date getDatePlusMinute(Date date, int plusTime) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MINUTE, plusTime);
Date d = cal.getTime();
return d;
}
/**
* 給時間加減秒
* @param date
* @param plusTime
* @return
* @author wul
* 2016-1-18
*/
public static Date getDatePlusSecond(Date date, int plusTime) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.SECOND, plusTime);
Date d = cal.getTime();
return d;
}
/**
* 返回當前年
* @return
* @author wul
* 2016-1-18
*/
public static int getCurrentYear() {
Calendar calendar = Calendar.getInstance();
return calendar.get(1);
}
/**
* 返回當前月
* @return
* @author wul
* 2016-1-18
*/
public static int getCurrentMonth() {
Calendar calendar = Calendar.getInstance();
return calendar.get(2)   1;
}
/**
* 返回當前天
* @return
* @author wul
* 2016-1-18
*/
public static int getCurrentDay() {
Calendar calendar = Calendar.getInstance();
return calendar.get(5);
}
/**
* 返回當前小時
* @return
* @author wul
* 2016-1-18
*/
public static int getCurrentHour() {
Calendar calendar = Calendar.getInstance();
return calendar.get(11);
}
/**
* 返回當前分鐘
* @return
* @author wul
* 2016-1-18
*/
public static int getCurrentMinute() {
Calendar calendar = Calendar.getInstance();
return calendar.get(12);
}
/**
* 返回當前秒
* @return
* @author wul
* 2016-1-18
*/
public static int getCurrentSecond() {
Calendar calendar = Calendar.getInstance();
return calendar.get(13);
}
/**
* 返回當前年
* @return
* @author wul
* 2016-1-18
*/
public static int getYear(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(1);
}
/**
* 返回當前月
* @return
* @author wul
* 2016-1-18
*/
public static int getMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(2)   1;
}
/**
* 返回當前天
* @return
* @author wul
* 2016-1-18
*/
public static int getDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(5);
}
/**
* 返回當前小時
* @return
* @author wul
* 2016-1-18
*/
public static int getHour(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(11);
}
/**
* 返回當前分鐘
* @return
* @author wul
* 2016-1-18
*/
public static int getMinute(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(12);
}
/**
* 返回當前秒
* @return
* @author wul
* 2016-1-18
*/
public static int getSecond(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(13);
}
public static void main(String[] args) {
System.out.println(DateUtil.dateToString(new java.sql.Date(System.currentTimeMillis()), DateUtil.DATE_NORMAL_FORMAT));
Map<String,Object> map = new HashMap<String,Object>();
map.put("date", new Date());
String json = JSONObject.fromObject(map).toString();
System.out.println(json);
}
}