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

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

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

ExpandedBlockStart.gif 时间工具类
  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/archive/2010/02/23/1671834.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值