Java中Date类型如何向前向后滚动时间,( 附工具类)
生活随笔
收集整理的這篇文章主要介紹了
Java中Date类型如何向前向后滚动时间,( 附工具类)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java中的Date類型向前向后滾動時間(附工具類)
廢話不多說,先看工具類:
1 import java.text.SimpleDateFormat;
2 import java.util.Calendar;
3 import java.util.Date;
4
5 public class DateRoll {
6
7 /**
8 * Date類型向前向后滾動固定時長
9 *
10 * @param date
11 * 調整前的時間對象
12 * @param i
13 * 需要滾動哪一個字段,寫法: 年->Calendar.YEAR 月->Calendar.MONTH
14 * 日->Calendar.DATE 時->Calendar.HOUR_OF_DAY(24小時制)
15 * 分->Calendar.MINUTE 秒->Calendar.SECOND 毫秒->Calendar.MILLISECOND
16 * @param d
17 * 滾動多少,向前(以前)就用負數,向后(未來)就用正數
18 */
19 public static Date dateRoll(Date date, int i, int d) {
20 // 獲取Calendar對象并以傳進來的時間為準
21 Calendar calendar = Calendar.getInstance();
22 calendar.setTime(date);
23 // 將現在的時間滾動固定時長,轉換為Date類型賦值
24 calendar.add(i, d);
25 // 轉換為Date類型再賦值
26 date = calendar.getTime();
27 return date;
28 }
29
30 public static void main(String[] args) {
31 System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
32 .format(new Date()));
33 System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
34 .format(dateRoll(new Date(), Calendar.SECOND, 1)));
35 }
36 }
1 java中處理時間的類有2個,一個是大家熟知的java.util.Date類,另一個是java.util.Calendar,那么他們有什么區別呢,在早期的java中并沒有Calendar類,后來人們發現了Date類的諸多bug,比如在向前回滾時間的時候,如果是2018-1-2回滾5天就變成了2018-12-28,很明顯這是不對的,不過因為java出現早期定下的規定,JDK開發人員并沒有直接在Date類里面修改,而是加入了更加完善的Calendar類Calendar經過長時間的實際使用,的確是已經證明它的完備性,Calendar還提供了與Date之間的轉換,本文中的滾動方法也是基于這種想法實現的,
總結
以上是生活随笔為你收集整理的Java中Date类型如何向前向后滚动时间,( 附工具类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RAM的简单实现
- 下一篇: 斑马打印机ZT410中文打印