小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Java常用時(shí)間操作工具類(lèi)

 kekokeko 2010-12-10

Java常用時(shí)間操作工具類(lèi)

文章分類(lèi):Java編程

話不多說(shuō),下文是一個(gè)時(shí)間計(jì)算的工具類(lèi),提供了一些常用的時(shí)間計(jì)算方法,大家也可以自己在這個(gè)的基礎(chǔ)上修改和擴(kuò)展。希望對(duì)大家有一點(diǎn)點(diǎn)用處。

 

Java代碼 復(fù)制代碼
  1. package www.;   
  2.   
  3. import java.text.SimpleDateFormat;   
  4. import java.util.ArrayList;   
  5. import java.util.Calendar;   
  6. import java.util.Date;   
  7. import java.util.List;   
  8. import java.util.Locale;   
  9. import java.util.TimeZone;   
  10.   
  11. /**  
  12.  * @author: Frank  
  13.  * @site: <a href="http://www.">名課堂企業(yè)管理培訓(xùn)網(wǎng)</a>  
  14.  * @company: http://www.  
  15.  * @blog: http://crazysheep./  
  16.  */  
  17. public class DateUtils {   
  18.   
  19.     //http響應(yīng)頭Expire屬性時(shí)間格式   
  20.     public static final String HTTP_RESPONSE_DATE_HEADER = "EEE, dd MMM yyyy HH:mm:ss zzz";   
  21.            
  22.     //http響應(yīng)頭Expire屬性時(shí)間格式工具   
  23.     public static final SimpleDateFormat responseHeaderFormat = new SimpleDateFormat(HTTP_RESPONSE_DATE_HEADER,Locale.US);   
  24.   
  25.     static{   
  26.         responseHeaderFormat.setTimeZone(TimeZone.getTimeZone("GMT"));   
  27.     }   
  28.        
  29.     /**  
  30.      * 某個(gè)時(shí)間點(diǎn)的下個(gè)月的第一天  
  31.      * @param day  
  32.      * @return  
  33.      */  
  34.     public static Date firstDayInNextMonth(Date day){   
  35.         Calendar c = Calendar.getInstance();   
  36.         c.setTime(day);   
  37.         c.set(Calendar.MONTH, c.get(Calendar.MONTH)+1);   
  38.         c.set(Calendar.DAY_OF_MONTH, 1);   
  39.         c.set(Calendar.HOUR_OF_DAY, 0);   
  40.         c.set(Calendar.MINUTE, 0);   
  41.         c.set(Calendar.SECOND, 0);   
  42.         return c.getTime();   
  43.     }   
  44.   
  45.     /**  
  46.      * 獲取某天在星期中的排序值:  
  47.      * 星期日 -> 星期六 對(duì)應(yīng)為:1 -> 7  
  48.      * @param date  
  49.      * @return  
  50.      */  
  51.     public static int getDateInWeek(Date date) {   
  52.         Calendar c = Calendar.getInstance();   
  53.         c.setTime(date);   
  54.         return c.get(Calendar.DAY_OF_WEEK);   
  55.     }   
  56.   
  57.     /**  
  58.      * 獲取指定日期后n天的凌晨  
  59.      * @param date  
  60.      * @param n  
  61.      * @return  
  62.      */  
  63.     public static Date getDateNextDay(Date date, int n) {   
  64.         Calendar c = Calendar.getInstance();   
  65.         c.setTime(date);   
  66.         c.add(Calendar.DATE, n);   
  67.         return c.getTime();   
  68.     }   
  69.        
  70.     /**  
  71.      * 獲取下n個(gè)月后的日期  
  72.      * @param n 月份偏移量  
  73.      * @return  
  74.      */  
  75.     public static Date getDateNextMonth(int n) {   
  76.         Calendar now = Calendar.getInstance();   
  77.         now.set(Calendar.MONTH, now.get(Calendar.MONTH) + n);// 設(shè)置時(shí)間向前進(jìn)n個(gè)月   
  78.         now.set(Calendar.HOUR_OF_DAY, 0);   
  79.         now.set(Calendar.MINUTE, 0);   
  80.         now.set(Calendar.SECOND, 0);   
  81.         return now.getTime();   
  82.     }   
  83.   
  84.     /**  
  85.      * 獲取今天在本月中的號(hào)碼  
  86.      * @return  
  87.      */  
  88.     public static int getDateOfMoth() {   
  89.         return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);   
  90.     }   
  91.        
  92.     /**  
  93.      * 本月的所有日期集合  
  94.      * @return  
  95.      */  
  96.     public static List<Date> getDatesInMonth() {   
  97.   
  98.         List<Date> dates = new ArrayList<Date>();   
  99.   
  100.         Calendar c = Calendar.getInstance();   
  101.   
  102.         // 設(shè)置代表的日期為1號(hào)   
  103.         c.set(Calendar.DATE, 1);   
  104.   
  105.         // 獲得當(dāng)前月的最大日期數(shù)   
  106.         int maxDay = c.getActualMaximum(Calendar.DATE);   
  107.   
  108.         for (int i = 1; i <= maxDay; i++) {   
  109.             c.set(Calendar.DATE, i);   
  110.             dates.add(c.getTime());   
  111.         }   
  112.   
  113.         return dates;   
  114.     }   
  115.        
  116.     /**  
  117.      * 獲取某個(gè)時(shí)間所在的月份  
  118.      * @param date  
  119.      * @return  
  120.      */  
  121.     public static int getMonth(Date date) {   
  122.         Calendar c = Calendar.getInstance();   
  123.         c.setTime(date);   
  124.         return c.get(Calendar.MONTH) + 1;   
  125.     }   
  126.   
  127.     /**  
  128.      * 獲取本月最后一天  
  129.      * @return  
  130.      */  
  131.     public static Date getMonthEnd() {   
  132.         int length = getDateOfMoth();   
  133.         Calendar c = Calendar.getInstance();   
  134.         c.set(Calendar.DATE, length);   
  135.         c.set(Calendar.HOUR, 24);   
  136.         c.set(Calendar.MINUTE, 0);   
  137.         c.set(Calendar.SECOND, 0);   
  138.         return c.getTime();   
  139.     }   
  140.   
  141.     /**  
  142.      * 獲取某個(gè)時(shí)間所在月份的最后一秒  
  143.      * @param date   
  144.      * @return  
  145.      */  
  146.     public static Date getMonthEnd(Date date){   
  147.         if(date == null){   
  148.             return null;   
  149.         }   
  150.         Calendar start = Calendar.getInstance();   
  151.         start.setTime(date);   
  152.         start.set(Calendar.MONTH, start.get(Calendar.MONTH)+1);   
  153.         start.set(Calendar.DAY_OF_MONTH, 1);   
  154.         start.set(Calendar.HOUR, 0);   
  155.         start.set(Calendar.MINUTE, 0);   
  156.         start.set(Calendar.SECOND, 0);   
  157.         return start.getTime();        
  158.     }   
  159.            
  160.     /**  
  161.      * 獲取某個(gè)時(shí)間所在月份的第一天凌晨  
  162.      * @param date   
  163.      * @return  
  164.      */  
  165.     public static Date getMonthStart(Date date){   
  166.         if(date == null){   
  167.             return null;   
  168.         }   
  169.         Calendar start = Calendar.getInstance();   
  170.         start.setTime(date);   
  171.         start.set(Calendar.DAY_OF_MONTH, 1);   
  172.         start.set(Calendar.HOUR, 0);   
  173.         start.set(Calendar.MINUTE, 0);   
  174.         start.set(Calendar.SECOND, 0);   
  175.         return start.getTime();        
  176.     }   
  177.        
  178.     /**  
  179.      * 獲取今天凌晨  
  180.      * @return  
  181.      */  
  182.     public static Date getMorning() {   
  183.         return getMorning(new Date());   
  184.     }   
  185.   
  186.     /**  
  187.      * 獲取指定時(shí)間當(dāng)天的凌晨  
  188.      * @param date 給定時(shí)間當(dāng)天的凌晨  
  189.      * @return  
  190.      */  
  191.     public static Date getMorning(Date date) {   
  192.         Calendar c = Calendar.getInstance();   
  193.         c.setTime(date);   
  194.         c.set(Calendar.HOUR_OF_DAY, 0);   
  195.         c.set(Calendar.MINUTE, 0);   
  196.         c.set(Calendar.SECOND, 0);   
  197.         return c.getTime();   
  198.     }   
  199.   
  200.     /**  
  201.      * 獲取當(dāng)前時(shí)間N天后的凌晨  
  202.      */  
  203.     public static Date getMorningNextDate(int n) {   
  204.         Calendar now = Calendar.getInstance();   
  205.         now.set(Calendar.DATE, now.get(Calendar.DATE) + n); //設(shè)置時(shí)間向前進(jìn)n天   
  206.         now.set(Calendar.HOUR_OF_DAY, 0);   
  207.         now.set(Calendar.MINUTE, 0);   
  208.         now.set(Calendar.SECOND, 0);   
  209.         return now.getTime();   
  210.     }   
  211.        
  212.     /**  
  213.      * 系統(tǒng)當(dāng)前時(shí)間過(guò)N個(gè)月后的時(shí)間  
  214.      * @param nextStep 月份偏移量  
  215.      * @return  
  216.      */  
  217.     public static Date getNextMonth(int nextStep){   
  218.         Calendar c = Calendar.getInstance();   
  219.         int m = c.get(Calendar.MONTH);   
  220.         c.set(Calendar.MONTH, m + nextStep);   
  221.         return c.getTime();   
  222.     }   
  223.   
  224.     /**  
  225.      * 計(jì)算給定時(shí)間推進(jìn)一個(gè)月對(duì)應(yīng)的時(shí)間  
  226.      * @param date 給定時(shí)間  
  227.      * @return 某時(shí)間過(guò)一個(gè)月后所在的時(shí)間  
  228.      */  
  229.     public static Date getNextMonthToday(Date date){   
  230.         Calendar c = Calendar.getInstance();   
  231.         c.setTime(date);   
  232.         c.set(Calendar.MONTH, c.get(Calendar.MONTH)+1);        
  233.         return c.getTime();   
  234.     }   
  235.        
  236.     /**  
  237.      * 獲取系統(tǒng)當(dāng)前時(shí)間所在的年份  
  238.      * @return  
  239.      */  
  240.     public static int getYear() {   
  241.         return Calendar.getInstance().get(Calendar.YEAR);   
  242.     }   
  243.        
  244.     /**  
  245.      * 獲取給定時(shí)間所在的年份  
  246.      * @param date 時(shí)間  
  247.      * @return 時(shí)間所在的年份  
  248.      */  
  249.     public static int getYear(Date date){   
  250.         Calendar c = Calendar.getInstance();   
  251.         c.setTime(date);   
  252.         return c.get(Calendar.YEAR);   
  253.     }   
  254.   
  255.     /**  
  256.      * 獲取某年分的最后一天結(jié)束的時(shí)間  
  257.      * @param year 年份  
  258.      * @return 指定年份的最后一天結(jié)束  
  259.      */  
  260.     public static Date getYearEnd(int year) {   
  261.         Calendar c = Calendar.getInstance();   
  262.         c.set(Calendar.YEAR, year);   
  263.         c.set(Calendar.MONTH,Calendar.DECEMBER);   
  264.         c.set(Calendar.DAY_OF_MONTH, 31);   
  265.         c.set(Calendar.HOUR_OF_DAY, 23);   
  266.         c.set(Calendar.MINUTE, 59);   
  267.         c.set(Calendar.SECOND, 59);   
  268.         return c.getTime();   
  269.     }   
  270.   
  271.     /**  
  272.      * 獲取某年份的第一天凌晨  
  273.      * @param year 年份  
  274.      * @return 指定年份的第一天凌晨  
  275.      */  
  276.     public static Date getYearStart(int year) {   
  277.         Calendar c = Calendar.getInstance();   
  278.         c.set(Calendar.YEAR, year);   
  279.         c.set(Calendar.MONTH, Calendar.JANUARY);   
  280.         c.set(Calendar.DAY_OF_MONTH,1);   
  281.         c.set(Calendar.HOUR_OF_DAY, 0);   
  282.         c.set(Calendar.MINUTE, 0);   
  283.         c.set(Calendar.SECOND, 0);   
  284.         return c.getTime();   
  285.     }   
  286. }  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約