日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java 進行時間處理的步驟

瀏覽:163日期:2022-08-12 09:46:02
目錄一、Calendar(1)、Calender介紹(2)、簡單的日期使用(3)、與Date之間的轉換二、Apache下的DateUtils三、JDK1.8新增的日期API LocalDate | LocalTime | LocalDateTime四、Hutool(Java工具類庫)總結一、Calendar(1)、Calender介紹

Calendar的中文翻譯是日歷,實際上,在歷史上有著許多種計時的方法。所以為了計時的統一,必需指定一個日歷的選擇。那現在最為普及和通用的日歷就是'Gregorian Calendar'。也就是我們在講述年份時常用'公元**年'。Calendar 在 Java 中是一個抽象類(Abstract Class),GregorianCalendar 是它的一個具體實現。Calendar.getInstance()中所獲得的實例就是一個'GreogrianCalendar'對象。

(2)、簡單的日期使用

Calendar cal = Calendar.getInstance();System.out.println(cal.get(Calendar.DATE));//-----------------------今天是幾號System.out.println(cal.get(Calendar.DAY_OF_MONTH));//---------------今天是一月的第幾天System.out.println(cal.get(Calendar.DAY_OF_WEEK));//----------------從星期天開始計算,如果今天星期二,那么返回3System.out.println( cal.get(Calendar.DAY_OF_YEAR));//----------------今天是一年的第幾天System.out.println( cal.get(Calendar.HOUR));//-----------------------現在是幾點 12小時制System.out.println( cal.get(Calendar.HOUR_OF_DAY));//----------------現在是幾點 24小時制,一般使用這個屬性賦值System.out.println(cal.get(Calendar.MILLISECOND));//----------------現在的毫秒System.out.println( cal.get(Calendar.MINUTE));//---------------------現在是幾分System.out.println( cal.get(Calendar.SECOND));//---------------------現在是幾秒System.out.println(cal.get(Calendar.WEEK_OF_MONTH));//--------------現在是一個月中的第幾周System.out.println(cal.get(Calendar.WEEK_OF_YEAR));//----------------現在是一個年中的第幾周System.out.println(cal.get(Calendar.MONTH));//-----------------------月份獲取需要 +1,那么,賦值時需要 -1System.out.println(cal.get(Calendar.MONTH)-1); //即可獲得上個月的月份(3)、與Date之間的轉換

Calendar calendar = Calendar.getInstance();// 從一個Calendar 對象中獲取 Date 對象Date date = calendar.getTime();// 將 Date 對象反應到一個 Calendar 對象中,// 先獲得一個實例,然后設置 Date 對象calendar.setTime(date);月份的起始值為0而不是1,所以要設置八月時,我們用7而不是8。calendar.set(Calendar.MONTH, 7);計算2000-01-01是星期幾calendar.set(2000,1,1)calendar.get(calendar.DAY_OF_WEEK )

當然Calender是最早的時間處理,是jdk1.6的東西難免比較過時

二、Apache下的DateUtils

(1)、引入包

<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.9</version></dependency>

(2)、沒什么可說的上翻譯就行

/** * 以秒為標準時間的毫秒數 */ public static final long MILLIS_PER_SECOND = 1000 /** *以分鐘為標準時間的毫秒數 */ public static final long MILLIS_PER_MINUTE = 60 * MILLIS_PER_SECOND /** *以小時為標準時間的毫秒數 */ public static final long MILLIS_PER_HOUR = 60 * MILLIS_PER_MINUTE /** * 以天為標準時間的毫秒數 */ public static final long MILLIS_PER_DAY = 24 * MILLIS_PER_HOUR /** * 這個類型是半個月, 所以這可以代表日期是上還是下半個月 。 */ public static final int SEMI_MONTH = 1001 /** * 周范圍, 從星期日開始 。 */ public static final int RANGE_WEEK_SUNDAY = 1 /** * 周范圍,從星期一開始 。 */ public static final int RANGE_WEEK_MONDAY = 2 /** * 周范圍,從關注的那天開始。 */ public static final int RANGE_WEEK_RELATIVE = 3 /** * 周范圍,以關注的天為中心。 */ public static final int RANGE_WEEK_CENTER = 4 /** * 月范圍,從星期日開始 。 */ public static final int RANGE_MONTH_SUNDAY = 5 /** * 月范圍,從星期一開始 。 */ public static final int RANGE_MONTH_MONDAY = 6 /** * 不應在標準編成構造獲取實列, 而應該直接使用類中的靜態方法,如:DateUtils.parseDate(str) 。 * 此構造函數意在允許需要一個javabeen實列的工具中使用 。 */ public DateUtils() /** * 判斷兩個日期時間是否是同一天 。 * * @param date1 第一個日期,不可修改,非null * @param date2 第二個日期,不可修改,非null */ public static boolean isSameDay(final Date date1, final Date date2) /** * 判斷兩個日歷時間是否是同一天 。* * @param cal1 第一個日歷,不可修改,非null * @param cal2 第二個日歷,不可修改,非null */ public static boolean isSameDay(final Calendar cal1, final Calendar cal2) /** * 判斷兩個日期是否相同 * 這種方法比較兩個對象的毫秒時間 * * @param date1 第一個日期,不可修改,非null * @param date2 第二個日期,不可修改,非null */ public static boolean isSameInstant(final Date date1, final Date date2) /** * 判斷兩個日歷是否相同 * 這種方法比較兩個對象的毫秒時間 * * @param cal1 第一個日歷,不可修改,非null * @param cal2 第二個日歷,不可修改,非null */ public static boolean isSameInstant(final Calendar cal1, final Calendar cal2) /** * 判斷兩個日歷本地時間是否相同 * 除了比較數值外兩個日歷對象的類型還要相同 * * @param cal1 第一個日歷,不可修改,非null * @param cal2 第二個日歷,不可修改,非null */ public static boolean isSameLocalTime(final Calendar cal1, final Calendar cal2) /** * 嘗試用parsePatterns中各種不同的日期格式解析代表時間的字符串str 。 * * 解析時會逐個使用parsePatterns中的格式,如果都沒有匹配上, 則拋出異常ParseException 。 * * @param str 被解析的時間字符串,非null * @param parsePatterns 用于解析str的時間格式,有一個或幾個,非null */ public static Date parseDate(final String str, final String... parsePatterns) throws ParseException /** * 嘗試用parsePatterns中各種不同的日期格式解析代表時間的字符串str 。 * 解析時會使用給定的日期格式符locale 。 * * 解析時會逐個使用parsePatterns中的格式,如果都沒有匹配上, 則拋出異常ParseException 。 * * @param str 被解析的時間字符串,非null * @param locale 使用locale中的日期格式符,如果為null,則使用系統默認的locale * @param parsePatterns 用于解析str的時間格式,有一個或幾個,非null */ public static Date parseDate(final String str, final Locale locale, final String... parsePatterns) throws ParseException /** * 嘗試用parsePatterns中各種不同的日期格式解析代表時間的字符串str 。 * * 解析時會逐個使用parsePatterns中的格式,如果都沒有匹配上, 則拋出異常ParseException 。 * 解析器解析嚴格不允許的日期, 如:'February 942, 1996' 。 * * @param str 被解析的時間字符串,非null * @param parsePatterns 用于解析str的時間格式,有一個或幾個,非null */ public static Date parseDateStrictly(final String str, final String... parsePatterns) throws ParseException /** * 嘗試用parsePatterns中各種不同的日期格式解析代表時間的字符串str 。 * 解析時會使用給定的日期格式符locale 。 * * 解析時會逐個使用parsePatterns中的格式,如果都沒有匹配上, 則拋出異常ParseException 。 * 解析器解析嚴格不允許的日期, 如:'February 942, 1996' 。 * * @param str 被解析的時間字符串,非null * @param locale 使用locale中的日期格式符,如果為null,則使用系統默認的locale * @param parsePatterns 用于解析str的時間格式,有一個或幾個,非null */ public static Date parseDateStrictly(final String str, final Locale locale, final String... parsePatterns) throws ParseException /** * 在日期date上增加amount年 。 * * @param date 處理的日期,非null * @param amount 要加的年數,可能為負數 */ public static Date addYears(final Date date, final int amount) /** * 在日期date上增加amount月 。 * * @param date 處理的日期,非null * @param amount 要加的月數,可能為負數 */ public static Date addMonths(final Date date, final int amount) /** * 在日期date上增加amount周 。 * * @param date 處理的日期,非null * @param amount 要加的周數,可能為負數 */ public static Date addWeeks(final Date date, final int amount) /** * 在日期date上增加amount天 。 * * @param date 處理的日期,非null * @param amount 要加的天數,可能為負數 */ public static Date addDays(final Date date, final int amount) /** * 在日期date上增加amount小時 。 * * @param date 處理的日期,非null * @param amount 要加的小時數,可能為負數 */ public static Date addHours(final Date date, final int amount) /** * 在日期date上增加amount分鐘 。 * * @param date 處理的日期,非null * @param amount 要加的分鐘數,可能為負數 */ public static Date addMinutes(final Date date, final int amount) /** * 在日期date上增加amount秒 。 * * @param date 處理的日期,非null * @param amount 要加的秒數,可能為負數 */ public static Date addSeconds(final Date date, final int amount) /** * 在日期date上增加amount 毫秒 。 * * @param date 處理的日期,非null * @param amount 要加的毫秒數,可能為負數 */ public static Date addMilliseconds(final Date date, final int amount) /** * 給日期data設置一個新的年份 。 * * @param date 處理的日期,非null * @param amount 要設置的年份 */ public static Date setYears(final Date date, final int amount) /** * 給日期data設置一個新的月份 。 * * @param date 處理的日期,非null * @param amount 要設置的月份 */ public static Date setMonths(final Date date, final int amount) /** * 給日期data設置一個新的天 。 * * @param date 處理的日期,非null * @param amount 要設置的天 */ public static Date setDays(final Date date, final int amount) /** * 給日期data設置一個新的小時 。 * * @param date 處理的日期,非null * @param amount 要設置的小時 */ public static Date setHours(final Date date, final int amount) /** * 給日期data設置一個新的分鐘 。 * * @param date 處理的日期,非null * @param amount 要設置的分鐘 */ public static Date setMinutes(final Date date, final int amount) /** * 給日期data設置一個新的秒 。 * * @param date 處理的日期,非null * @param amount 要設置的秒 */ public static Date setSeconds(final Date date, final int amount) /** * 給日期data設置一個新的毫秒 。 * * @param date 處理的日期,非null * @param amount 要設置的毫秒 */ public static Date setMilliseconds(final Date date, final int amount) /** * 將一個日期放到日歷中 。 */ public static Calendar toCalendar(final Date date) /** * 根據閾值field四舍五入日歷date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 14:00:00.000; * 如果field為MONTH,它將返回 1 April 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Date round(final Date date, final int field) /** * 根據閾值field四舍五入日歷date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 14:00:00.000; * 如果field為MONTH,它將返回 1 April 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Calendar round(final Calendar date, final int field) /** * 根據閾值field四舍五入日歷date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 14:00:00.000; * 如果field為MONTH,它將返回 1 April 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Date round(final Object date, final int field) /** * 根據閾值field截取日期date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 13:00:00.000; * 如果field為MONTH,它將返回 1 Mar 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Date truncate(final Date date, final int field) /** * 根據閾值field截取日歷date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 13:00:00.000; * 如果field為MONTH,它將返回 1 Mar 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Calendar truncate(final Calendar date, final int field) /** * 根據閾值field截取日期date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 13:00:00.000; * 如果field為MONTH,它將返回 1 Mar 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Date truncate(final Object date, final int field) /** * 根據閾值field向上舍入日期date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 14:00:00.000; * 如果field為MONTH,它將返回 1 Apr 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Date ceiling(final Date date, final int field) /** * 根據閾值field向上舍入日期date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 14:00:00.000; * 如果field為MONTH,它將返回 1 Apr 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Calendar ceiling(final Calendar date, final int field) /** * 根據閾值field向上舍入日期date 。 * * 例如, 如果你的時間是 28 Mar 2002 13:45:01.231, * 如果field為HOUR,它將返回 28 Mar 2002 14:00:00.000; * 如果field為MONTH,它將返回 1 Apr 2002 0:00:00.000 。 * * @param date 處理的日期,非null * @param field 閾值 */ public static Date ceiling(final Object date, final int field) /** * 根據指定的時間focus和范圍類型rangeStyle構建一個時間范圍迭代器 。 * * 如傳入的時間是Thursday, July 4, 2002,范圍類型是RANGE_MONTH_SUNDAY, * 則返回迭代器的范圍是從Sunday, June 30, 2002 到 Saturday, August 3, 2002 * * @param focus 指定的時間 * @param rangeStyle 范圍類型,值必須是如下之一: * DateUtils.RANGE_MONTH_SUNDAY, * DateUtils.RANGE_MONTH_MONDAY, * DateUtils.RANGE_WEEK_SUNDAY, * DateUtils.RANGE_WEEK_MONDAY, * DateUtils.RANGE_WEEK_RELATIVE, * DateUtils.RANGE_WEEK_CENTER */ public static Iterator<Calendar> iterator(final Date focus, final int rangeStyle) /** * 根據指定的時間focus和范圍類型rangeStyle構建一個時間范圍迭代器 。 * * 如傳入的時間是Thursday, July 4, 2002,范圍類型是RANGE_MONTH_SUNDAY, * 則返回迭代器的范圍是從Sunday, June 30, 2002 到 Saturday, August 3, 2002 * * @param focus 指定的時間 * @param rangeStyle 范圍類型,值必須是如下之一: * DateUtils.RANGE_MONTH_SUNDAY, * DateUtils.RANGE_MONTH_MONDAY, * DateUtils.RANGE_WEEK_SUNDAY, * DateUtils.RANGE_WEEK_MONDAY, * DateUtils.RANGE_WEEK_RELATIVE, * DateUtils.RANGE_WEEK_CENTER */ public static Iterator<Calendar> iterator(final Calendar focus, final int rangeStyle) /** * 根據指定的時間focus和范圍類型rangeStyle構建一個時間范圍迭代器 。 * * 如傳入的時間是Thursday, July 4, 2002,范圍類型是RANGE_MONTH_SUNDAY, * 則返回迭代器的范圍是從Sunday, June 30, 2002 到 Saturday, August 3, 2002 * * @param focus 指定的時間 * @param rangeStyle 范圍類型,值必須是iterator(Calendar, int)方法注釋中列出的 */ public static Iterator<?> iterator(final Object focus, final int rangeStyle) /** * 返回指定分段內的毫秒數 。 所有大于分段的DateFields將被忽略 。 * * 請求任何日期毫秒,將返回當前秒的毫秒數 (返回一個數字在0和999之間) 。 * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、 * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、 * Calendar.SECOND 和 Calendar.MILLISECOND * 分段值小于或等于MILLISECOND,將返回0 。 * * January 1, 2008 7:15:10.538 with Calendar.SECOND as fragment will return 538 * January 6, 2008 7:15:10.538 with Calendar.SECOND as fragment will return 538 * January 6, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10538 * January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0 * (a millisecond cannot be split in milliseconds) * * @param calendar 獲取值得日歷對象,非null * @param fragment 分段值 */ public static long getFragmentInMilliseconds(final Calendar calendar, final int fragment) /** * 返回指定分段內的秒數 。 所有大于分段的DateFields將被忽略 。 * * 請求任何日期秒,將返回當前的分鐘的秒數 (返回一個數字在0和59之間) 。 * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、 * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、 * Calendar.SECOND 和 Calendar.MILLISECOND * 分段值小于或等于SECOND,將返回0 。 * * January 1, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10 * January 6, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10 * January 6, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 26110 * (7*3600 + 15*60 + 10)</li> * January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0 * * @param calendar 獲取值得日歷對象,非null * @param fragment 分段值 */ public static long getFragmentInSeconds(final Calendar calendar, final int fragment) /** * 返回指定分段內的分鐘數 。 所有大于分段的DateFields將被忽略 。 * * 請求任何日期分鐘,將返回當前的小時的分鐘數 (返回一個數字在0和59之間) * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、 * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、 * Calendar.SECOND 和 Calendar.MILLISECOND * 分段值小于或等于MINUTE,將返回0 。 * * January 1, 2008 7:15:10.538 with Calendar.HOUR_OF_DAY as fragment will return 15 * January 6, 2008 7:15:10.538 with Calendar.HOUR_OF_DAY as fragment will return 15 * January 1, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 15 * January 6, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 435 (7*60 + 15) * January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0 * * @param calendar 獲取值得日歷對象,非null * @param fragment 分段值 */ public static long getFragmentInMinutes(final Calendar calendar, final int fragment) /** * 返回指定分段內的小時數 。 所有大于分段的DateFields將被忽略 。 * * 請求任何日期小時,將返回當前的天的小時數 (返回一個數字在0和23之間) 。 * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、 * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、 * Calendar.SECOND 和 Calendar.MILLISECOND * 分段值小于或等于HOUR_OF_DAY,將返回0 。 * * January 1, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 7 * January 6, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 7 * January 1, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 7 * January 6, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 127 (5*24 + 7) * January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0 * * @param calendar 獲取值得日歷對象,非null * @param fragment 分段值 */ public static long getFragmentInHours(final Calendar calendar, final int fragment) /** * 返回指定分段內的天數 。 所有大于分段的DateFields將被忽略 。 * * 請求任何日期天數,將返回當前的月的天數 (返回一個數字在1和31之間) 。 * 有效的分段值是: Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、 * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、 * Calendar.SECOND 和 Calendar.MILLISECOND * 分段值小于或等于DATE,將返回0 。 * * January 28, 2008 with Calendar.MONTH as fragment will return 28 * February 28, 2008 with Calendar.MONTH as fragment will return 28 * January 28, 2008 with Calendar.YEAR as fragment will return 28 * February 28, 2008 with Calendar.YEAR as fragment will return 59 * January 28, 2008 with Calendar.MILLISECOND as fragment will return 0 * * @param calendar 獲取值得日歷對象,非null * @param fragment 分段值 */ public static long getFragmentInDays(final Calendar calendar, final int fragment) /** * 截取比較兩個日歷對象的field處的值是否相同 。 * * @param cal1 第一個日歷對象,非null * @param cal2 第二個日歷對象,非null * @param field Calendar中的閾值 */ public static boolean truncatedEquals(final Calendar cal1, final Calendar cal2, final int field) /** * 截取比較兩個日期對象的field處的值是否相同 。 * * @param date1 第一個日期對象,非null * @param date2 第二個日期對象,非null * @param field Calendar中的閾值 */ public static boolean truncatedEquals(final Date date1, final Date date2, final int field) /** * 截取比較兩個日歷對象的field處的值 。 * 如果第一個日歷小于、等于、大于第二個,則對應返回負整數、0、正整數 * * @param cal1 第一個日歷對象,非null * @param cal2 第二個日歷對象,非null * @param field Calendar中的閾值 */ public static int truncatedCompareTo(final Calendar cal1, final Calendar cal2, final int field) /** * 截取比較斷兩個日期對象的field處的值 。 * 如果第一個日期小于、等于、大于第二個,則對應返回負整數、0、正整數 * * @param date1 第一個日期對象,非null * @param date2 第二個日期對象,非null * @param field Calendar中的閾值 */ public static int truncatedCompareTo(final Date date1, final Date date2, final int field)//簡單舉例System.out.println(DateUtils.addDays(new Date(), 1));//-----------------當前日期。天數加1如果想建議填負數即可 System.out.println(DateUtils.addHours(new Date(), 0));//----------------當前日期 Date date = DateUtils.addDays(new Date(), 1);

DateUtils返回的就是Date不需要轉換,當然也是很早的東西了,只是誕生在Calender基礎之上而已

三、JDK1.8新增的日期API LocalDate | LocalTime | LocalDateTime

新的日期API都是不可變的,更使用于多線程的使用環境中(從默認時區的系統時鐘獲取當前的日期時間。不用考慮時區差)優點:

1、之前使用的java.util.Date月份從0開始,我們一般會+1使用,很不方便,java.time.LocalDate月份和星期都改成了enum

2、java.util.Date和SimpleDateFormat都不是線程安全的,而LocalDate和LocalTime和最基本的String一樣,是不變類型,不但線程安全,而且不能修改。

3、java.util.Date是一個“萬能接口”,它包含日期、時間,還有毫秒數,更加明確需求取舍

4、新接口更好用的原因是考慮到了日期時間的操作,經常發生往前推或往后推幾天的情況。用java.util.Date配合Calendar要寫好多代碼,而且一般的開發人員還不一定能寫對。

(1)、LocalDateTime(年月日時分秒)

LocalDateTime date = LocalDateTime.now();//2021-03-26T10:24:14.009784900System.out.println(date);//獲取年月日時分秒操作System.out.println(date.getYear());System.out.println(date.getMonthValue());System.out.println(date.getDayOfMonth());System.out.println(date.getHour());System.out.println(date.getMinute());System.out.println(date.getSecond());System.out.println(date.getNano());//當然你也可以獲取最近任意的一段時間 System.out.println(date.getSecond()+1); ||System.out.println(date.getSecond()-1);// 手動創建一個LocalDateTime實例LocalDateTime date2 = LocalDateTime.of(2017, 12, 17, 9, 31, 31, 31);System.out.println(date2);// 進行加操作,得到新的日期實例LocalDateTime date3 = date2.plusDays(12);System.out.println(date3);// 進行減操作,得到新的日期實例LocalDateTime date4 = date3.minusYears(2);System.out.println(date4);isAfter()判斷一個日期是否在指定日期之后 返回boolean 類型System.out.println(localDateTime.isBefore(LocalDateTime.now()));//---------返回falseisBefore()判斷一個日期是否在指定日期之前 返回boolean 類型System.out.println(localDateTime.isAfter(LocalDateTime.now()));//---------返回falseisLeapYear()判斷是否是閏年(這個是LocalDate類中的方法) 返回boolean類型System.out.println(localDateTime.isEqual(LocalDateTime.now()));//---------返回true

(2)、LocalDateTime與Date之間的轉換

Date to LocalDateTime

Date todayDate = new Date();LocalDateTime ldt = Instant.ofEpochMilli( todayDate.getTime() ).atZone( ZoneId.systemDefault() ).toLocalDateTime();System.out.println(ldt);

LocalDateTime to Date

LocalDateTime localDateTime = LocalDateTime.now();Date date = Date.from( localDateTime.atZone( ZoneId.systemDefault()).toInstant());System.out.println(date);

當然還有很多好玩的東西,LocalDate(年月日) LocalTime(時分秒)和LocalDateTime(年月日時分秒)都大差不差,所以講一個即可

四、Hutool(Java工具類庫)

一個比較好玩的Java工具類庫,包含很多好玩的工具類,簡單便捷。

(1)、安裝

Maven

<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.6.1</version></dependency>

Gradle

compile ’cn.hutool:hutool-all:5.6.1’

Maven中央倉庫Hutool 5.x支持JDK8+,對Android平臺沒有測試,不能保證所有工具類或工具方法可用。 如果你的項目使用JDK7,請使用Hutool 4.x版本

(2)、使用

//該工具類時間都是格式化好的System.out.println(DateUtil.now());//------------------------------取當前時間這也沒啥好說的下載源碼看中文注釋即可,就不一一舉例了,,,簡簡單單。總結

總之好玩的工具類一大坨,不管是jdk原生還是別人封裝的工具類,如果你想也可以自己通過jdk1.8的日期api自己封裝屬于自己的日期工具類,網上的日期工具類太多了,不要重復造輪子~~~~~~~~~~今天也是元氣滿滿的一天

以上就是Java 進行時間處理的步驟的詳細內容,更多關于Java 時間處理的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本欧美在线| 天堂av一区| 中文亚洲欧美| 一本一道久久a久久精品蜜桃| 精品午夜av| 麻豆精品视频在线| 国产精品a级| 精品久久久中文字幕| 国产成人精选| 久久中文亚洲字幕| 亚洲永久字幕| 中文字幕av一区二区三区人 | 色综合视频一区二区三区日韩| 一区二区不卡| 精品视频在线观看网站| 首页国产精品| 久久影视一区| 99日韩精品| 91精品丝袜国产高跟在线| 国产精品巨作av| 成人va天堂| 少妇精品久久久一区二区| 国产丝袜一区| 国产一在线精品一区在线观看| 亚洲免费在线| 久久精品国产久精国产| 亚洲伦乱视频| 蜜桃视频一区二区| 国产成人久久| 久久福利精品| 国产欧美日韩免费观看| 欧美少妇精品| 视频在线观看国产精品| 国产精品2023| 亚洲欧洲一区二区天堂久久| 国产精品一区二区av交换| 激情欧美一区| 精品亚洲成人| 日韩福利视频网| 日韩一区二区久久| 国产传媒av在线| 日本欧美一区二区在线观看| 亚洲香蕉网站| 国产成人77亚洲精品www| 日韩精品久久理论片| 亚洲一级特黄| 久久精品国产福利| 国产欧美三级| 日韩三级一区| 视频一区中文字幕| 九九久久电影| 亚洲成av在线| 欧美黄色网页| 日韩福利一区| 国语精品一区| 四虎国产精品免费观看| 国产精品美女午夜爽爽| 日韩精品成人| 日韩高清在线不卡| 亚洲另类视频| 日韩午夜一区| 九九在线精品| 奶水喷射视频一区| 亚洲在线观看| 天使萌一区二区三区免费观看| 黄色日韩在线| 免费成人性网站| 日本一区二区三区视频在线看| 蜜桃久久精品一区二区| 蜜芽一区二区三区| 亚洲三级国产| 国产精品www994| 91一区二区| 国产91精品对白在线播放| 99热精品久久| 亚洲午夜视频| 一区在线视频观看| 亚洲图片久久| 精品视频黄色| 视频二区不卡| 美女精品在线| 日本aⅴ精品一区二区三区| 欧美国产极品| 亚洲欧美伊人| 国产欧美日韩在线观看视频| 日本激情一区| 噜噜噜久久亚洲精品国产品小说| 亚洲18在线| av资源亚洲| 日韩影院在线观看| 国产一区二区视频在线看| 美女在线视频一区| 久久青草久久| 国产日韩亚洲| 亚洲精品在线观看91| 日日夜夜免费精品视频| 精品国产aⅴ| 免费人成网站在线观看欧美高清| 国产精久久久| 日韩亚洲国产欧美| 精品国产精品国产偷麻豆 | 欧美在线资源| 国产精品网在线观看| 精品一区三区| 久久国产尿小便嘘嘘| 一区免费视频| 午夜精品久久久久久久久久蜜桃| 欧美在线看片| 免费久久99精品国产自在现线| 国产精品免费精品自在线观看| 黑丝一区二区| 美女福利一区二区三区| 欧美亚洲国产日韩| 亚洲在线电影| 日本高清不卡一区二区三区视频| 国产极品嫩模在线观看91精品| 蜜臀av亚洲一区中文字幕| 亚洲精品午夜av福利久久蜜桃| 国产 日韩 欧美 综合 一区| 三级欧美韩日大片在线看| 日韩不卡免费高清视频| 久久精品凹凸全集| 日韩三区四区| 日韩精品视频在线看| av不卡免费看| 2023国产精品久久久精品双| 国精品一区二区| 日韩精品首页| 久久中文字幕av| 狠狠色狠狠色综合日日tαg| 国产精品久久久久av电视剧| 在线亚洲人成| av日韩中文| 欧美男人天堂| 精品三级久久| 国产视频久久| 亚洲a成人v| 国产高清精品二区| 在线天堂中文资源最新版| 日韩av免费| 日韩影院免费视频| 欧美中文一区| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 久久久久免费av| 亚洲一区二区网站| 蜜臀久久99精品久久久久宅男| 丝袜亚洲精品中文字幕一区| 日韩精品久久理论片| 国产精品免费大片| 精品丝袜在线| 午夜在线精品| 国产美女久久| 亚洲最新无码中文字幕久久 | 奇米777国产一区国产二区| 国产精品99精品一区二区三区∴ | 一二三区精品| 狠狠久久伊人中文字幕| 福利视频一区| 在线亚洲自拍| 日韩二区在线观看| 久久中文亚洲字幕| 国产免费av一区二区三区| 久久激情中文| 国产欧美亚洲一区| 中文字幕系列一区| 五月激激激综合网色播 | 在线亚洲成人| 国产成人精品福利| 中文无码久久精品| 国语对白精品一区二区| 蜜桃av一区二区在线观看| 欧美一级二级三级视频| 久久视频一区| 日韩不卡免费视频| 欧美 日韩 国产精品免费观看| 欧美一区自拍| 亚洲激情黄色| 电影亚洲精品噜噜在线观看| 国产欧美在线观看免费| 亚洲欧美久久| 日韩在线二区| 麻豆久久久久久| 啪啪亚洲精品| 日韩va欧美va亚洲va久久| 午夜在线观看免费一区| 亚洲女同中文字幕| 国产videos久久| 欧美日韩一区自拍| 婷婷精品久久久久久久久久不卡| 欧美日韩激情| 亚洲成人精选| 成人免费网站www网站高清| 欧美日韩国产观看视频| 蜜桃精品视频| 麻豆91精品91久久久的内涵| 久久激五月天综合精品| 午夜精品福利影院| 天堂va在线高清一区| 日韩和欧美一区二区三区| 美女被久久久|