1. 程式人生 > >時間工具類(DateUtil)

時間工具類(DateUtil)

複製程式碼
  1 [java] view plaincopyprint?
2 /** 3 * UtilsTest
4 * 時間日期工具類,封裝工作中常用的一些時間日期計算方法等
5 * 還可以提供更多的過載方法,用於時間的轉化等
6 */
7 package com.labci.util.test;
8 import java.text.DateFormat;
9 import java.text.ParseException;
10 import java.text.SimpleDateFormat;
11 import java.util.Calendar;
12
import java.util.Date;
13 import java.util.GregorianCalendar;
14 /** 15 * @author Bill Tu(tujiyue/iwtxokhtd)
16 * Jun 6, 2011[9:25:21 PM]
17 *
18 */
19 public class DateUtil {
20 private DateUtil(){
21
22 }
23
24 private static final String hhmmFormat="HH:mm";
25
private static final String MMddFormat="MM-dd";
26 private static final String yyyyFormat="yyyy";
27 private static final String yyyyChineseFormat="yyyy年";
28 private static final String yyyyMMddFormat="yyyy-MM-dd";
29 private static final String fullFormat="yyyy-MM-dd HH:mm:ss";
30
private static final String MMddChineseFormat="MM月dd日";
31 private static final String yyyyMMddChineseFormat="yyyy年MM月dd日";
32 private static final String fullChineseFormat="yyyy年MM月dd日 HH時mm分ss秒";
33 private static final String [] WEEKS={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
34
35 /** 36 * 得到指定時間的時間日期格式
37 * @param date 指定的時間
38 * @param format 時間日期格式
39 * @return 40 */
41 public static String getFormatDateTime(Date date,String format){
42 DateFormat df=new SimpleDateFormat(format);
43 return df.format(date);
44 }
45
46 /** 47 * 判斷是否是潤年
48 * @param date 指定的時間
49 * @return true:是潤年,false:不是潤年
50 */
51 public static boolean isLeapYear(Date date) {
52 Calendar cal=Calendar.getInstance();
53 cal.setTime(date);
54 return isLeapYear(cal.get(Calendar.YEAR));
55 }
56
57 /** 58 * 判斷是否是潤年
59 * @param date 指定的年
60 * @return true:是潤年,false:不是潤年
61 */
62 public static boolean isLeapYear(int year) {
63 GregorianCalendar calendar = new GregorianCalendar();
64 return calendar.isLeapYear(year);
65 }
66
67 /** 68 * 判斷指定的時間是否是今天
69 * @param date 指定的時間
70 * @return true:是今天,false:非今天
71 */
72 public static boolean isInToday(Date date){
73 boolean flag=false;
74 Date now=new Date();
75 String fullFormat=getFormatDateTime(now,DateUtil.yyyyMMddFormat);
76 String beginString=fullFormat+" 00:00:00";
77 String endString=fullFormat+" 23:59:59";
78 DateFormat df=new SimpleDateFormat(DateUtil.fullFormat);
79 try {
80 Date beginTime=df.parse(beginString);
81 Date endTime=df.parse(endString);
82 flag=date.before(endTime)&&date.after(beginTime);
83 } catch (ParseException e) {
84 e.printStackTrace();
85 }
86 return flag;
87 }
88
89 /** 90 * 判斷兩時間是否是同一天
91 * @param from 第一個時間點
92 * @param to 第二個時間點
93 * @return true:是同一天,false:非同一天
94 */
95 public static boolean isSameDay(Date from,Date to){
96 boolean isSameDay=false;
97 DateFormat df=new SimpleDateFormat(DateUtil.yyyyMMddFormat);
98 String firstDate=df.format(from);
99 String secondDate=df.format(to);
100 isSameDay=firstDate.equals(secondDate);
101 return isSameDay;
102 }
103
104 /**105 * 求出指定的時間那天是星期幾
106 * @param date 指定的時間
107 * @return 星期X
108 */
109 public static String getWeekString(Date date){
110 return DateUtil.WEEKS[getWeek(date)-1];
111 }
112
113 /**114 * 求出指定時間那天是星期幾
115 * @param date 指定的時間
116 * @return 1-7
117 */
118 public static int getWeek(Date date){
119 int week=0;
120 Calendar cal=Calendar.getInstance();
121 cal.setTime(date);
122 week=cal.get(Calendar.DAY_OF_WEEK);
123 return week;
124 }
125
126 /**127 * 取得指定時間離現在是多少時間以前,如:3秒前,2小時前等
128 * 注意:此計算方法不是精確的
129 * @param date 已有的指定時間
130 * @return 時間段描述
131 */
132 public static String getAgoTimeString(Date date){
133 Date now=new Date();
134 Calendar cal=Calendar.getInstance();
135 cal.setTime(date);
136 Date agoTime=cal.getTime();
137 long mtime=now.getTime()-agoTime.getTime();
138 String str="";
139 long stime=mtime/1000;
140 long minute=60;
141 long hour=60*60;
142 long day=24*60*60;
143 long weeks=7*24*60*60;
144 long months=100*24*60*60;
145 if(stime<minute){
146 long time_value=stime;
147 if(time_value<=0){
148 time_value=1;
149 }
150 str=time_value+"秒前";
151 }else if(stime>=minute && stime<hour){
152 long time_value=stime/minute;
153 if(time_value<=0){
154 time_value=1;
155 }
156 str=time_value+"分前";
157 }else if(stime>=hour && stime<day){
158 long time_value=stime/hour;
159 if(time_value<=0){
160 time_value=1;
161 }
162 str=time_value+"小時前";
163 }else if(stime>=day&&stime<weeks){
164 long time_value=stime/day;
165 if(time_value<=0){
166 time_value=1;
167 }
168 str=time_value+"天前";
169 }else if(stime>=weeks&&stime<months){
170 DateFormat df=new SimpleDateFormat(DateUtil.MMddFormat);
171 str=df.format(date);
172 }else{
173 DateFormat df=new SimpleDateFormat(DateUtil.yyyyMMddFormat);
174 str=df.format(date);
175 }
176 return str;
177 }
178
179 /**180 * 判斷指定時間是否是週末
181 * @param date 指定的時間
182 * @return true:是週末,false:非週末
183 */
184 public static boolean isWeeks(Date date){
185 boolean isWeek=false;
186 isWeek=(getWeek(date)-1==0||getWeek(date)-1==6);
187 return isWeek;
188 }
189
190 /**191 * 得到今天的最開始時間
192 * @return 今天的最開始時間
193 */
194 public static Date getTodayBeginTime(){
195 String beginString=DateUtil.yyyyMMddFormat+" 00:00:00";
196 DateFormat df=new SimpleDateFormat(DateUtil.fullFormat);
197 Date beginTime=new Date();
198 try {
199 beginTime=df.parse(beginString);
200 } catch (ParseException e) {
201 e.printStackTrace();
202 }
203 return beginTime;
204 }
205
206 /**207 * 得到今天的最後結束時間
208 * @return 今天的最後時間
209 */
210 public static Date getTodayEndTime(){
211 String endString=DateUtil.yyyyMMddFormat+" 23:59:59";
212 DateFormat df=new SimpleDateFormat(DateUtil.fullFormat);
213 Date endTime=new Date();
214 try {
215 endTime=df.parse(endString);
216 } catch (ParseException e) {
217 e.printStackTrace();
218 }
219 return endTime;
220 }
221
222 /**223 * 取得本週的開始時間
224 * @return 本週的開始時間
225 */
226 public static Date getThisWeekBeginTime(){
227 Date beginTime=null;
228 Calendar cal=Calendar.getInstance();
229 int week=getWeek(cal.getTime());
230 week=week-1;
231 int days=0;
232 if(week==0){
233 days=6;
234 }else{
235 days=week-1;
236 }
237 cal.add(Calendar.DAY_OF_MONTH, -days);
238 beginTime=cal.getTime();
239 return beginTime;
240 }
241
242 /**243 * 取得本週的開始日期
244 * @param format 時間的格式
245 * @return 指定格式的本週最開始時間
246 */
247 public static String getThisWeekBeginTimeString(String format){
248 DateFormat df=new SimpleDateFormat(format);
249 return df.format(getThisWeekBeginTime());
250 }
251
252
253 /**254 * 取得本週的結束時間
255 * @return 本週的結束時間
256 */
257 public static Date getThisWeekEndTime(){
258 Date endTime=null;
259 Calendar cal=Calendar.getInstance();
260 int week=getWeek(cal.getTime());
261 week=week-1;
262 int days=0;
263 if(week!=0){
264 days=7-week;
265 }
266 cal.add(Calendar.DAY_OF_MONTH, days);
267 endTime=cal.getTime();
268 return endTime;
269 }
270
271
272 /**273 * 取得本週的結束日期
274 * @param format 時間的格式
275 * @return 指定格式的本週結束時間
276 */
277 public static String getThisWeekEndTimeString(String format){
278 DateFormat df=new SimpleDateFormat(format);
279 return df.format(getThisWeekEndTime());
280 }
281
282 /**283 * 取得兩時間相差的天數
284 * @param from 第一個時間
285 * @param to 第二個時間
286 * @return 相差的天數
287 */
288 public static long getBetweenDays(Date from, Date to){
289 long days=0;
290 long dayTime=24*60*60*1000;
291 long fromTime=from.getTime();
292 long toTime=to.getTime();
293 long times=Math.abs(fromTime-toTime);
294 days=times/dayTime;
295 return days;
296 }
297
298 /**299 * 取得兩時間相差的小時數
300 * @param from 第一個時間
301 * @param to 第二個時間
302 * @return 相差的小時數
303 */
304 public static long getBetweenHours(Date from,Date to){
305 long hours=0;
306 long hourTime=60*60*1000;
307 long fromTime=from.getTime();
308 long toTime=to.getTime();
309 long times=Math.abs(fromTime-toTime);
310 hours=times/hourTime;
311 return hours;
312 }
313
314 /**315 * 取得在指定時間上加減days天后的時間
316 * @param date 指定的時間
317 * @param days 天數,正為加,負為減
318 * @return 在指定時間上加減days天后的時間
319 */
320 public static Date addDays(Date date,int days){
321 Date time=null;
322 Calendar cal=Calendar.getInstance();
323 cal.add(Calendar.DAY_OF_MONTH, days);
324 time=cal.getTime();
325 return time;
326 }
327
328 /**329 * 取得在指定時間上加減months月後的時間
330 * @param date 指定時間
331 * @param months 月數,正為加,負為減
332 * @return 在指定時間上加減months月後的時間
333 */
334 public static Date addMonths(Date date,int months){
335 Date time=null;
336 Calendar cal=Calendar.getInstance();
337 cal.add(Calendar.MONTH, months);
338 time=cal.getTime();
339 return time;
340 }
341
342 /**343 * 取得在指定時間上加減years年後的時間
344 * @param date 指定時間
345 * @param years 年數,正為加,負為減
346 * @return 在指定時間上加減years年後的時間
347 */
348 public static Date addYears(Date date,int years){
349 Date time=null;
350 Calendar cal=Calendar.getInstance();
351 cal.add(Calendar.YEAR, years);
352 time=cal.getTime();

相關推薦

時間工具,DateUtil各種好用

package com.huxin.utils; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.u

java開發中常用的日期時間工具 DateUtil

java開發中常會用到的 日期時間工具類。 package org.demo; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateForm

時間工具(DateUtil)

1 [java] view plaincopyprint? 2 /** 3 * UtilsTest 4 * 時間日期工具類,封裝工作中常用的一些時間日期計算方法等 5 * 還可以提供更多的過載方法,用於時間的轉化等 6 */ 7 package com.labci.uti

開源Java時間工具Joda-Time體驗

java import org.joda.time.*; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import org.junit.Test; import java

時間工具

ava args pla body package java gettime pac ins 一、得到當前時間的前一天 package com.qiyuan.util; import java.text.SimpleDateFormat; import java.ut

獲取當前系統時間工具TimeUtils

string public date() new edate 當前 com strong alt TimeUtils: package com.duocy.util; import java.time.LocalDateTime;import java.time.f

jdk8時間工具

    package com.changfu.common.util;   import org.slf4j.Logger; import org.slf4j.LoggerFactory;   im

時間工具(DateUtils)

在jeesite的基礎上封裝了DateUtils工具類 有獲取年限,判斷是不是週末等等工具 package com.thinkgem.jeesite.common.utils; import java.text.DateFormat; import java.text.ParseExcep

idea 時間工具

private static final String DEFAULT_FORMAT = "yyyy-MM-dd"; //定義預設的日期格式 /** * 判斷時間是否有效 * * @param date 用正則表示式判斷 yyyy-MM-dd * @return */ public st

js獲取時間工具

function getTime() { var now = new Date(); var year = now.getFullYear(); //年   var month = now.getMonth() + 1; //月 &n

日期工具 DateUtil

工作中需要用到各種日期格式化,以下為平時常用的格式化。 獲取當前時間 Date getCurrentDateTime() 通用日期格式化 String getDateString 通用日期時間格式化,

202.常用java時間工具

1. 效果     2. 工具類 package ipi.common.utils; import java.text.Format; import java.text.ParseException; import java.text.SimpleDa

時間工具DateUlits,判斷某一時間距離當前時間幾分鐘、幾小時、幾天前

在我們開發中經常要對時間進行處理,把這些處理方法做成一個工具類是十分方面的,下面是我整理的一些時間處理的方法。 DateUlits方法目錄: 1、列印當前日期 2、輸入年-月-日  轉化為date型別 3、獲得一個 Date 物件例項 4、設定時間 5、獲取當前時間的前一

開發中常用的日期時間工具

package com.yufei.core.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;

Android時間工具 本地轉UTC,UTC轉本地

package com.peopleapp.en.util; import android.content.Context; import android.text.TextUtils; import android.text.format.DateFor

Android時間工具

package com.dejun.commonsdk.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Dat

時間工具DateU

package com.ddtkj.common.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.C

java date 工具 DateUtil 格式轉換

package systems.baseutil.tool; /** * <p>Title: 時間和日期的工具類</p> * <p>Description: DateUtil類包含了標準的時間和日期格式,以及這些格式在字串及日期之間

java日期工具DateUtil-續二

該版本是一次較大的升級,農曆相比公曆複雜太多(真佩服古人的智慧),雖然有規律,但涉及到的取捨、近似的感念太多,況且本身的概念就已經很多了,我在網上也是查閱了很多的資料,雖然找到一些計算的方法,但都有些計算缺陷,後來才終於找到“壽天星文歷”:一個十分精準的萬年曆。雖然它的功能

【個人總結 | 個人轉載】——Java時間工具

本文介紹兩個時間日期工具類的使用:1、Joda-time;2、Java8自帶的時間類。 兩者的使用都很方便,用法類似,少量程式碼就可以實現常用的功能,如:根據自定義格式獲取時間、時間加減、時間對比等。 具體看程式碼: 1. maven專案引入jar 包 <d