在我們的日常開發(fā)中經(jīng)常會(huì)碰到需要時(shí)間轉(zhuǎn)換,這里我把常用的時(shí)間轉(zhuǎn)換方法封裝成一個(gè)TimeUtils,做項(xiàng)目的時(shí)候放進(jìn)項(xiàng)目里直接調(diào)用其中方法就行了,很方便。
廢話不多說,直接上代碼
package com.***.***.util
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
/**
*
* ClassName:TimeUtils 通用時(shí)間類
*
* @author walle
* @version 1.0
* @since Ver 1.0
*
*/
public class TimeUtils {
public static final SimpleDateFormat DEFAULT_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static final SimpleDateFormat DATE_FORMAT_DATE = new SimpleDateFormat("yyyy-MM-dd");
public static final SimpleDateFormat File_DATE_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
public static final SimpleDateFormat DATE_FORMAT_DATE_NO_YEAR = new SimpleDateFormat("MM-dd");
/**
* 將毫秒時(shí)間轉(zhuǎn)換為String類型
*
* @param timeInMillis
* 毫秒時(shí)間
* @param dateFormat
* 時(shí)間格式
* @return
*/
public static String getTime(long timeInMillis, SimpleDateFormat dateFormat) {
return dateFormat.format(new Date(timeInMillis));
}
/**
* 將毫秒時(shí)間轉(zhuǎn)換為String類型 默認(rèn)時(shí)間格式為(yyyy-MM-dd HH:mm:ss)
*
* @param timeInMillis
* 毫秒時(shí)間
* @return
*/
public static String getTime(long timeInMillis) {
return getTime(timeInMillis, DEFAULT_DATE_FORMAT);
}
/**
* 獲取當(dāng)前的毫秒時(shí)間
*
* @return 毫秒時(shí)間
*/
public static long getCurrentTimeInLong() {
return System.currentTimeMillis();
}
/**
* 獲取當(dāng)前時(shí)間,默認(rèn)時(shí)間格式為 yyyy-MM-dd HH:mm:ss
*
* @return 當(dāng)前時(shí)間
*/
public static String getCurrentTimeInString() {
return getTime(getCurrentTimeInLong());
}
/**
* 獲取當(dāng)前日期,默認(rèn)日期格式為 yyyy-MM-dd
*
* @return 當(dāng)前日期
*/
public static String getCurrentDateInString() {
return getTime(getCurrentTimeInLong(), DATE_FORMAT_DATE);
}
/**
*
* getCurrentTimeInString:(根據(jù)毫秒時(shí)間獲取當(dāng)前時(shí)間)
*
* @param dateFormat
* 時(shí)間格式
* @return String 時(shí)間
* @throws @since
* CodingExample Ver 1.0
*/
public static String getCurrentTimeInString(SimpleDateFormat dateFormat) {
return getTime(getCurrentTimeInLong(), dateFormat);
}
/**
* 獲取時(shí)間毫秒數(shù)
*
* @param time
* @return
*/
public static long getTimeInLong(String time) {
try {
Date date = DEFAULT_DATE_FORMAT.parse(time);
return date.getTime();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
public static long getTimeInLong(String time, SimpleDateFormat format) {
try {
Date date = format.parse(time);
return date.getTime();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
/**
* 計(jì)算兩個(gè)時(shí)間段相差毫秒數(shù)
*
* @param dateBefore
* @param dateAfter
* @return
*/
public static long getSubTimeInMillionSecond(String dateBefore, String dateAfter) {
try {
long before = getTimeInLong(dateBefore);
long after = getTimeInLong(dateAfter);
long subValue = after - before;
return subValue;
} catch (Exception e) {
return 0;
}
}
/**
* 計(jì)算兩個(gè)時(shí)間段相差幾天
*
* @param dateBefore
* @param dateAfter
* @return
*/
public static long getSubDays(String dateBefore, String dateAfter) {
long milliSecond = getSubTimeInMillionSecond(dateBefore, dateAfter);
long subDays = milliSecond / (1000 * 60 * 60 * 24);
return subDays;
}
public static String getCurDate() {
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
String mYear = String.valueOf(c.get(Calendar.YEAR)); // 獲取當(dāng)前年份
String mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);// 獲取當(dāng)前月份
String mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 獲取當(dāng)前月份的日期號(hào)碼
return mYear + "年" + mMonth + "月" + mDay + "日";
}
public static String getWeekOfDate() {
String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
Calendar cal = Calendar.getInstance();
Date curDate = new Date(System.currentTimeMillis());
cal.setTime(curDate);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (w < 0) {
w = 0;
}
return weekDays[w];
}
public static String getWeekIndexOfDate() {
Calendar cal = Calendar.getInstance();
Date curDate = new Date(System.currentTimeMillis());
cal.setTime(curDate);
int w = cal.get(Calendar.WEEK_OF_YEAR);
if (w < 0) {
w = 0;
}
return String.valueOf(w);
}
}
在做項(xiàng)目的時(shí)候創(chuàng)建一個(gè)TimeUtils類,將以上代碼復(fù)制進(jìn)去,在需要的地方調(diào)用,非常方便,節(jié)約了重復(fù)查找的時(shí)間。