java時(shí)間轉(zhuǎn)換工具類

這個(gè)持續(xù)更新吧,只是項(xiàng)目暫時(shí)用到的


package bingosoft.epm.helper.utils;

import java.sql.Timestamp;

import java.text.DateFormat;

import java.text.ParseException;

import java.text.ParsePosition;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class DateUtils {

public static long ONE_DAY =24 *60 *60 *1000L;

public static long ONE_HOUR =60 *60 *1000L;

public static long ONE_MINUTE =60 *1000L;

private static final StringDATE_PATTERNS[] = {"yyyy-MM-dd HH:mm:ss.SSS",

"yyyy-MM-dd HH:mm:ss","yyyy-MM-dd HH:mm","yyyy-MM-dd",

"yyyy/MM/dd HH:mm:ss","yyyy/MM/dd HH:mm","yyyy/MM/dd",

"yyyyMMddHHmmss","yyyyMMddHHmm","yyyyMMdd","HH:mm:ss","HH:mm","yyyyMMddHHmmssSSS"};

public static final int DATE_NORMAL =0;

public static final int DATE_COMPACT =7;

public static Date toDate(Object value) {

Date date =null;

if (value !=null) {

parse:

if (valueinstanceof Timestamp) {

date =new Date(((Timestamp) value).getTime());

}else if (valueinstanceof Date) {

date = (Date) value;

}else if (valueinstanceof Number) {

date =new Date(((Number) value).longValue());

}else {

String source = String.valueOf(value);

SimpleDateFormat parser =new SimpleDateFormat();

parser.setLenient(true);

ParsePosition pos =new ParsePosition(0);

for (String pattern :DATE_PATTERNS) {

parser.applyPattern(pattern);

pos.setIndex(0);

date = parser.parse(source, pos);

if (date !=null && pos.getIndex() == source.length()) {

break parse;

}

}

date =null;

}

}

return date;

}

public static String toString(Date date) {

return toString(date,DATE_NORMAL);

}

public static String toString(Date date,int pattern) {

if (date ==null) {

return null;

}

if (pattern <0 || pattern >=DATE_PATTERNS.length) {

pattern =DATE_NORMAL;

}

SimpleDateFormat parser =new SimpleDateFormat(DATE_PATTERNS[pattern]);

return parser.format(date);

}

public static Date getDate(int delay) {

return getDate(null, delay);

}

public static Date getDate(Date startTime,int delay) {

if (startTime ==null) {

startTime =new Date();

}

if (delay >0) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(startTime);

calendar.add(Calendar.MILLISECOND, delay);

startTime = calendar.getTime();

}

return startTime;

}

/**

? ? * 時(shí)間格式化 返回類型 :2015年6月3號(hào) 星期幾 上午 10.00-16:00

? ? * 用于開(kāi)會(huì)時(shí)間格式填寫

? ? *

? ? * @return

? ? */

? ? public static String dateFormmat(Date start, Date endTime) {

DateFormat format1 =new SimpleDateFormat("yyyy年MM月dd日");

//開(kāi)始時(shí)間

? ? ? ? String stringTime = format1.format(start);

//結(jié)束時(shí)間

? ? ? ? String end = format1.format(endTime);

String temptimes =null;

if (stringTime.equals(end)) {

DateFormat format =new SimpleDateFormat("yyyy年MM月dd日 EEE aaa hh:mm");

stringTime = format.format(start);

DateFormat format2 =new SimpleDateFormat("hh:mm");

String endTimes = format2.format(endTime);

temptimes = stringTime +"-" + endTimes;

}else {

DateFormat format =new SimpleDateFormat("yyyy年MM月dd日 EEE aaa hh:mm");

stringTime = format.format(start);

DateFormat format2 =new SimpleDateFormat(" yyyy年MM月dd日 EEE hh:mm");

String endTimes = format2.format(endTime);

temptimes = stringTime +"-" + endTimes;

}

return temptimes;

}

/**

? ? * 根據(jù)秒數(shù)獲取時(shí)間串

? ? *

? ? * @param time (2018-10-1)

? ? * @return (2018-10-1 00:00:00)

*/

? ? public static String getTimeStrBySecond(Date time, String end) {

SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd");

String times = simpleDateFormat.format(time);

if (end !=null) {

times +=" 23:59:59";

}else {

times +=" 00:00:00";

}

return times;

}

/**

? ? * 格式化時(shí)間

? ? *

? ? * @param time1

? ? * @param time2

? ? * @return 06:20-08:30

*/

? ? public static String getHhss(Date time1, Date time2) {

DateFormat format1 =new SimpleDateFormat("HH:mm");

//開(kāi)始時(shí)間格式化

? ? ? ? String stringTime = format1.format(time1);

//結(jié)束時(shí)間格式化

? ? ? ? String endTimes = format1.format(time2);

String temptimes = stringTime +"-" + endTimes;

return temptimes;

}

/**

? ? * 獲取時(shí)間相差的天數(shù)

? ? *

? ? * @param beginDate

? ? * @param endDate

? ? * @return 相差的天數(shù)

? ? */

? ? public static long getDaySub(Date beginDate, Date endDate) {

long day =0;

try {

if (endDate ==null) {

return day;

}

day = (endDate.getTime() - beginDate.getTime()) / (24 *60 *60 *1000);

//System.out.println("相隔的天數(shù)="+day);

? ? ? ? }catch (Exception e) {

e.printStackTrace();

}

return day;

}

/**

? ? * 日期轉(zhuǎn)星期

? ? *

? ? * @param datetime

? ? * @return

? ? * @throws java.text.ParseException

*/

? ? public static String dateToWeek(String datetime)throws java.text.ParseException {

SimpleDateFormat ff =new SimpleDateFormat("yyyy-MM-dd");

String[] weekDays = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

Calendar cal = Calendar.getInstance();// 獲得一個(gè)日歷

? ? ? ? Date datet =null;

Date now =new Date();

String nowTime = ff.format(now);

try {

datet = ff.parse(datetime);

cal.setTime(datet);

}catch (ParseException e) {

e.printStackTrace();

}

int w = cal.get(Calendar.DAY_OF_WEEK) -1;// 指示一個(gè)星期中的某天螟够。

? ? ? ? if(datetime.equals(nowTime)){

weekDays[w]="今日";

}

if (w <0) {

w =0;

}

return weekDays[w];

}

/**

? ? * 指定日期加一天

? ? *

? ? * @param time

? ? * @return

? ? */

? ? public static Date getNextDay(Date time) {

return new Date(time.getTime() +24 *3600 *1000);

}

/**

? ? * 相隔天數(shù)读慎,后面-前面

? ? * @param start

? ? * @param end

? ? * @return

? ? */

? ? public static int getDays(Date start, Date end) {

return (int) ((end.getTime() - start.getTime()) /ONE_DAY);

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漱贱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子夭委,更是在濱河造成了極大的恐慌幅狮,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件株灸,死亡現(xiàn)場(chǎng)離奇詭異崇摄,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)慌烧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門逐抑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人屹蚊,你說(shuō)我怎么就攤上這事厕氨。” “怎么了汹粤?”我有些...
    開(kāi)封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵腐巢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我玄括,道長(zhǎng)冯丙,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任遭京,我火速辦了婚禮胃惜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哪雕。我一直安慰自己船殉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布斯嚎。 她就那樣靜靜地躺著利虫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪堡僻。 梳的紋絲不亂的頭發(fā)上糠惫,一...
    開(kāi)封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音钉疫,去河邊找鬼硼讽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛牲阁,可吹牛的內(nèi)容都是我干的固阁。 我是一名探鬼主播壤躲,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼备燃!你這毒婦竟也來(lái)了碉克?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤并齐,失蹤者是張志新(化名)和其女友劉穎漏麦,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體冀膝,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年霎挟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窝剖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡酥夭,死狀恐怖赐纱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情熬北,我是刑警寧澤疙描,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站讶隐,受9級(jí)特大地震影響起胰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巫延,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一效五、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炉峰,春花似錦畏妖、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至婆廊,卻和暖如春迅细,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淘邻。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工疯攒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人列荔。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓敬尺,卻偏偏與公主長(zhǎng)得像枚尼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子砂吞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容