java日期时间处理工具类封装

  在日常的开发中经常会遇到时间的处理。比如格式化后打印出来,得到明天的日期等等。java中也提供了很多类来处理时间,比如Calendar,java.util.Date,java.sql.Timestamp,SimpleDateFormat等等。昨天晚上写了一个工具类,封装了一些常用的方法。比如拿到当前的年月日时分秒,昨天,明天,之前n天,之后n天,格式化,还有各种时间类型之间的互相转换等等。如果还有什么需要的话,请告诉我,我好完善它。谢谢。

  在最后提供了完整代码的下载,方便大家查看和使用。

时间工具类
  1 package com.haode.bugtrace.util;
  2 
  3 import java.sql.Time;
  4 import java.sql.Timestamp;
  5 import java.text.SimpleDateFormat;
  6 import java.util.Calendar;
  7 import java.util.Date;
  8 
  9 /**
 10  * 日期时间处理工具类
 11  * @author laichendong
 12  * @since 2010年2月22日23:09:09
 13  *
 14  */
 15 public class DateTime {
 16     
 17     private long lNow = System.currentTimeMillis();
 18     private Calendar cNow = Calendar.getInstance();
 19     private Date dNow = new Date(lNow);
 20     private Timestamp tNow = new Timestamp(lNow);
 21     private java.sql.Date today = new java.sql.Date(lNow);
 22     private java.sql.Time now = new java.sql.Time(lNow);
 23 
 24     /**
 25      * 默认构造方法
 26      */
 27     public DateTime() {
 28         
 29     }
 30 
 31     /*private DateTime(long lNow, Calendar cNow, Date dNow, Timestamp tNow,
 32             java.sql.Date today, Time now) {
 33         this.lNow = lNow;
 34         this.cNow = cNow;
 35         this.dNow = dNow;
 36         this.tNow = tNow;
 37         this.today = today;
 38         this.now = now;
 39     }*/
 40 
 41     /**
 42      * 得到年
 43      * @param c
 44      * @return
 45      */
 46     public static int getYear(Calendar c){
 47         if(c != null){
 48             return c.get(Calendar.YEAR);
 49         }else{
 50             return Calendar.getInstance().get(Calendar.YEAR);
 51         }
 52     }
 53     
 54     /**
 55      * 得到月份
 56      * 注意,这里的月份依然是从0开始的
 57      * @param c
 58      * @return
 59      */
 60     public static int getMonth(Calendar c){
 61         if(c != null){
 62             return c.get(Calendar.MONTH);
 63         }else{
 64             return Calendar.getInstance().get(Calendar.MONTH);
 65         }
 66     }
 67     
 68     /**
 69      * 得到日期
 70      * @param c
 71      * @return
 72      */
 73     public static int getDate(Calendar c){
 74         if(c != null){
 75             return c.get(Calendar.DATE);
 76         }else{
 77             return Calendar.getInstance().get(Calendar.DATE);
 78         }
 79     }
 80     
 81     /**
 82      * 得到星期
 83      * @param c
 84      * @return
 85      */
 86     public static int getDay(Calendar c){
 87         if(c != null){
 88             return c.get(Calendar.DAY_OF_WEEK);
 89         }else{
 90             return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
 91         }
 92     }
 93     
 94     /**
 95      * 得到小时
 96      * @param c
 97      * @return
 98      */
 99     public static int getHour(Calendar c){
100         if(c != null){
101             return c.get(Calendar.HOUR);
102         }else{
103             return Calendar.getInstance().get(Calendar.HOUR);
104         }
105     }
106     
107     /**
108      * 得到分钟
109      * @param c
110      * @return
111      */
112     public static int getMinute(Calendar c){
113         if(c != null){
114             return c.get(Calendar.MINUTE);
115         }else{
116             return Calendar.getInstance().get(Calendar.MINUTE);
117         }
118     }
119     
120     /**
121      * 得到秒
122      * @param c
123      * @return
124      */
125     public static int getSecond(Calendar c){
126         if(c != null){
127             return c.get(Calendar.SECOND);
128         }else{
129             return Calendar.getInstance().get(Calendar.SECOND);
130         }
131     }
132     
133     /**
134      * 得到指定或者当前时间前n天的Calendar
135      * @param c
136      * @param n
137      * @return
138      */
139     public static Calendar beforeNDays(Calendar c, int n){
140         //偏移量,给定n天的毫秒数
141         long offset = n*24*60*60*1000;
142         Calendar calendar = null;
143         if(c != null){
144             calendar = c;
145         }else{
146             calendar = Calendar.getInstance();
147         }
148         
149         calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);
150         return calendar;
151     }
152     
153     /**
154      * 得到指定或者当前时间后n天的Calendar
155      * @param c
156      * @param n
157      * @return
158      */
159     public static Calendar afterNDays(Calendar c, int n){
160         //偏移量,给定n天的毫秒数
161         long offset = n*24*60*60*1000;
162         Calendar calendar = null;
163         if(c != null){
164             calendar = c;
165         }else{
166             calendar = Calendar.getInstance();
167         }
168         
169         calendar.setTimeInMillis(calendar.getTimeInMillis() + offset);
170         return calendar;
171     }
172     
173     /**
174      * 昨天
175      * @param c
176      * @return
177      */
178     public static Calendar yesterday(Calendar c){
179         long offset = 1*24*60*60*1000;
180         Calendar calendar = null;
181         if(c != null){
182             calendar = c;
183         }else{
184             calendar = Calendar.getInstance();
185         }
186         
187         calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);
188         return calendar;
189     }
190     
191     /**
192      * 明天
193      * @param c
194      * @return
195      */
196     public static Calendar tomorrow(Calendar c){
197         long offset = 1*24*60*60*1000;
198         Calendar calendar = null;
199         if(c != null){
200             calendar = c;
201         }else{
202             calendar = Calendar.getInstance();
203         }
204         
205         calendar.setTimeInMillis(calendar.getTimeInMillis() + offset);
206         return calendar;
207     }
208     
209     /**
210      * 得到指定或者当前时间前offset毫秒的Calendar
211      * @param c
212      * @param offset
213      * @return
214      */
215     public static Calendar before(Calendar c, long offset){
216         Calendar calendar = null;
217         if(c != null){
218             calendar = c;
219         }else{
220             calendar = Calendar.getInstance();
221         }
222         
223         calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);
224         return calendar;
225     }
226     
227     /**
228      * 得到指定或者当前时间前offset毫秒的Calendar
229      * @param c
230      * @param offset
231      * @return
232      */
233     public static Calendar after(Calendar c, long offset){
234         Calendar calendar = null;
235         if(c != null){
236             calendar = c;
237         }else{
238             calendar = Calendar.getInstance();
239         }
240         
241         calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);
242         return calendar;
243     }
244     
245     /**
246      * 日期格式化
247      * @param c
248      * @param pattern
249      * @return
250      */
251     public static String format(Calendar c, String pattern){
252         Calendar calendar = null;
253         if(c != null){
254             calendar = c;
255         }else{
256             calendar = Calendar.getInstance();
257         }
258         if(pattern == null || pattern.equals("")){
259             pattern = "yyyy年MM月dd日 HH:mm:ss";
260         }
261         SimpleDateFormat sdf = new SimpleDateFormat(pattern);
262         
263         return sdf.format(calendar.getTime());
264     }
265     
266     /**
267      * Date类型转换到Calendar类型
268      * @param d
269      * @return
270      */
271     public static Calendar Date2Calendar(Date d){
272         Calendar c = Calendar.getInstance();
273         c.setTime(d);
274         return c;
275     }
276     
277     /**
278      * Calendar类型转换到Date类型
279      * @param c
280      * @return
281      */
282     public static Date Calendar2Date(Calendar c){
283         return c.getTime();
284     }
285     
286     /**
287      * Date类型转换到Timestamp类型
288      * @param d
289      * @return
290      */
291     public static Timestamp Date2Timestamp(Date d){
292         return new Timestamp(d.getTime());
293     }
294     
295     /**
296      * Calendar类型转换到Timestamp类型
297      * @param c
298      * @return
299      */
300     public static Timestamp Calendar2Timestamp(Calendar c){
301         return new Timestamp(c.getTimeInMillis());
302     }
303     
304     /**
305      * Timestamp类型转换到Calendar类型
306      * @param ts
307      * @return
308      */
309     public static Calendar Timestamp2Calendar(Timestamp ts){
310         Calendar c = Calendar.getInstance();
311         c.setTime(ts);
312         return c;
313     }
314     
315     /**
316      * 得到当前时间的字符串表示
317      * 格式2010-02-02 12:12:12
318      * @return
319      */
320     public static String getTimeString(){
321         return format(Calendar.getInstance(), "yyyy-MM-dd HH:mm:ss");
322     }
323     
324     /**
325      * 标准日期格式字符串解析成Calendar对象
326      * @param s
327      * @return
328      */
329     public static Calendar pars2Calender(String s){
330         Timestamp ts = Timestamp.valueOf(s);
331         return Timestamp2Calendar(ts);
332     }
333     
334     //================以下是get和set方法=========================//
335     
336     public long getLNow() {
337         return lNow;
338     }
339 
340     public void setLNow(long now) {
341         lNow = now;
342     }
343 
344     public Calendar getCNow() {
345         return cNow;
346     }
347 
348     public void setCNow(Calendar now) {
349         cNow = now;
350     }
351 
352     public Date getDNow() {
353         return dNow;
354     }
355 
356     public void setDNow(Date now) {
357         dNow = now;
358     }
359 
360     public Timestamp getTNow() {
361         return tNow;
362     }
363 
364     public void setTNow(Timestamp now) {
365         tNow = now;
366     }
367 
368     public java.sql.Date getToday() {
369         return today;
370     }
371 
372     public void setToday(java.sql.Date today) {
373         this.today = today;
374     }
375 
376     public java.sql.Time getNow() {
377         return now;
378     }
379 
380     public void setNow(java.sql.Time now) {
381         this.now = now;
382     }
383 
384     /**
385      * @param args
386      */
387     public static void main(String[] args) {
388         // TODO Auto-generated method stub
389 
390     }
391 
392 }
393 

完整代码/Files/coffee/DateTime.rar

原文地址:https://www.cnblogs.com/coffee/p/1671834.html