項目中經常有對時間進行處理的需求,下面是一些常用的操作整理,方便以后再次使用以及做相關復習。
1.字符串轉換為日期
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/** * 字符串轉換為日期 * @param dateStr 需要轉換的日期 * @param dateFormat 日期格式yyyy-MM-dd/yyyy-MM-dd HH:mm:ss */ public static Date toDate(String dateStr, SimpleDateFormat dateFormat) throws ParseException{ Date date = null ; try { date = dateFormat.parse(dateStr); } catch (ParseException e) { logger.debug( "Fail to convert String to Date, {}" , dateStr); } return date; } |
2.時間戳轉日期
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/** * 時間戳轉日期 * @param date * @return */ public static String dateToTime( long time, SimpleDateFormat dateFormat) throws ParseException{ String data = null ; try { dateFormat.format( new Date(time* 1000 )); } catch (Exception e) { logger.debug( "Fail to convert long to Date, {}" , time); } return data; } |
3.日期格式化成字符串
1
2
3
4
5
6
7
8
9
10
|
/** * 日期格式化成字符串 * @param date * @param dateFormat * @return * @throws ParseException */ public static String toString(Date date, SimpleDateFormat dateFormat) throws ParseException{ return dateFormat.format(date); } |
4.獲取指定日期之前或之后的日期 ,十分秒為00:00:00
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 獲取指定日期之前或之后的日期 * @param date * @param num 正數為之后,負數為之前 * @return yyyy-MM-dd 00:00:00 */ public static Date getSpecificDate(Date date, int num){ Calendar todayCal = Calendar.getInstance(); todayCal.setTime(date); Calendar c = Calendar.getInstance(); c.set(todayCal.get(Calendar.YEAR), todayCal.get(Calendar.MONTH), todayCal.get(Calendar.DAY_OF_MONTH) + num, 0 , 0 , 0 ); return c.getTime(); } |
5.獲取指定日期之前或之后的日期 ,時分秒為當前的
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 獲取指定日期之前或之后的日期 * @param date * @param num 正數為之前,負數為之后 * @return yyyy-MM-dd + 當前的時分秒 */ public static Date getSpecificDateAndHhMmSs(Date date, int num){ Calendar c = Calendar.getInstance(); c.setTime(date); int day=c.get(Calendar.DATE); c.set(Calendar.DATE,day - num); return c.getTime(); } |
6.將time類型的時間字符串 轉換成 時、分
1
2
3
4
5
6
7
8
9
|
/** * 將time類型的時間字符串 轉換成 時、分 * HH-mm-ss -->> HH-mm * @param time * @return */ public static String timeToHHMM(String time){ return time.substring( 0 , time.length() - 3 ); } |
7.獲取某個日期的時、分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/** * 獲取某個日期的時、分 * @param date * @return HH-mm */ public static String getHM(Date date){ Calendar ca = Calendar.getInstance(); ca.setTime(date); Integer hour = ca.get(Calendar.HOUR_OF_DAY); //小時 Integer minute = ca.get(Calendar.MINUTE); //分 String rs_hour = hour.toString(); String rs_minute = minute.toString(); if (rs_hour.length() == 1 ){ rs_hour = "0" + hour; } if (rs_minute.length() == 1 ){ rs_minute = "0" + minute; } return rs_hour + ":" + rs_minute; } |
8.time類型的時間字符串 -->> 零點開始的秒數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/** * time類型的時間字符串 -->> 零點開始的秒數 * @param time HH-mm / HH-mm-ss * @return */ public static Integer timeToSeconds(String time){ String[] timeSplit = null ; int hours = 0 ,minutes = 0 ,seconds = 0 ; try { timeSplit = time.split( ":" ); if (timeSplit.length == 2 ) { hours = Integer.valueOf(timeSplit[ 0 ])* 60 * 60 ; minutes = Integer.valueOf(timeSplit[ 1 ])* 60 ; } else if (timeSplit.length == 3 ){ hours = Integer.valueOf(timeSplit[ 0 ])* 60 * 60 ; minutes = Integer.valueOf(timeSplit[ 1 ])* 60 ; seconds = Integer.valueOf(timeSplit[ 2 ]); } else { logger.debug( "Fail to convert the time, {}" , time); } } catch (Exception e) { logger.debug( "Fail to convert the time, {}" , time); throw e; } return hours + minutes + seconds; } |
9.零點開始的秒數轉時間 -->> HH-mm-ss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/** * 零點開始的秒數轉時間 -->> HH-mm-ss * @param durationSeconds * @return */ public static String getDuration( int durationSeconds){ int hours = durationSeconds /( 60 * 60 ); int leftSeconds = durationSeconds % ( 60 * 60 ); int minutes = leftSeconds / 60 ; int seconds = leftSeconds % 60 ; StringBuffer sBuffer = new StringBuffer(); sBuffer.append(addZeroPrefix(hours)); sBuffer.append( ":" ); sBuffer.append(addZeroPrefix(minutes)); sBuffer.append( ":" ); sBuffer.append(addZeroPrefix(seconds)); return sBuffer.toString(); } public static String addZeroPrefix( int number){ if (number < 10 ) return "0" +number; else return "" +number; } |
10.比較兩個日期相差的秒數
1
2
3
4
5
6
7
8
9
10
11
|
/** * 比較兩個日期相差的秒數 * @param startDate * @param endDate * @return */ public static int getTimeSeconds(Date startDate,Date endDate) { long a = endDate.getTime(); long b = startDate.getTime(); return ( int )((a - b) / 1000 ); } |
11.判斷兩個時間段是否存在交集
1
2
3
4
5
6
7
8
9
10
11
|
/** * 比較兩個日期相差的秒數 * @param startDate * @param endDate * @return */ public static int getTimeSeconds(Date startDate,Date endDate) { long a = endDate.getTime(); long b = startDate.getTime(); return (int)((a - b) / 1000); } |
12.獲取指定日期是星期幾(1-7分別代表周一至周日)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
/** * 獲取指定日期是星期幾(1-7分別代表周一至周日) * @return */ public static int DayOfWeek(Date date){ Calendar now = Calendar.getInstance(); now.setTime(date); boolean isFirstDay = (now.getFirstDayOfWeek() == Calendar.SUNDAY); int weekday = now.get(Calendar.DAY_OF_WEEK); if (isFirstDay){ weekday = weekday - 1 ; if (weekday == 0 ){ weekday = 7 ; } } return weekday; } |
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!
原文鏈接:http://www.cnblogs.com/liliangel/p/5292944.html