精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Java基礎之:日期類

 

Java基礎之:日期類

第一代日期類

  1. Date:精確到毫秒,代表特定的瞬間

  2. SimpleDateFormat:格式和解析日期的類

  3. SimpleDateFormat 是一個以與語言環境有關的方式來格式化和解析日期的具體類。它允許進行格式化(日期 -> 文本)、解析(文本 -> 日期)和規范化.

package class_Date;import java.util.Date;import java.text.ParseException;import java.text.SimpleDateFormat;?public class ClassTest_FirstDate {?    public static void main(String[] args) throws ParseException {?        Date d1 = new Date(); //獲取當前系統時間        Date d2 = new Date(9234567); //通過指定毫秒數得到時間        System.out.println(d1.getTime()); //獲取某個時間對應的毫秒數?        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");        String format = sdf.format(d1); // format:將日期轉換成指定格式的字符串?        String s = "1996年01月01日 10:20:30 星期一";        Date parse = sdf.parse(s);  //parse方法會拋編譯異常?    }}

日期格式化輸出的時候,使用的字母是提前規定好了的。

 

第二代日期類

第二代日期類,主要就是 Calendar類(日歷)。

public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>

Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。

package class_Date;import java.util.Calendar;public class ClassTest_SecondDate {    public static void main(String[] args) {                Calendar c = Calendar.getInstance(); // 創建日歷類對象//比較簡單,自由        //抽象類創建對象,但實際c的運行類型為其子類 GregorianCalendar                System.out.println(c);        System.out.println(c.getClass());   //GregorianCalendar                //獲取日歷對象的某個日歷字段        System.out.println("年:" + c.get(Calendar.YEAR));        System.out.println("月:" + (c.get(Calendar.MONTH) + 1));        System.out.println("日:" + c.get(Calendar.DAY_OF_MONTH));        System.out.println("小時:" + c.get(Calendar.HOUR));        System.out.println("分鐘:" + c.get(Calendar.MINUTE));        System.out.println("秒:" + c.get(Calendar.SECOND));                // Calender 沒有專門的格式化方法,所以需要程序員自己來組合顯示        System.out.println(                c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH) + 1)                 + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");?    }}

 

第三代日期類

前面兩代日期類的不足分析:

JDK 1.0中包含了一個java.util.Date類,但是它的大多數方法已經在JDK 1.1引入Calendar類之后被棄用了。而Calendar并不比Date好多少。它們面臨的問題是:

  1. 可變性:像日期和時間這樣的類應該是不可變的。

  2. 偏移性:Date中的年份是從1900開始的,而月份都從0開始。

  3. 格式化:格式化只對Date有用,Calendar則不行。

  4. 此外,它們也不是線程安全的;不能處理閏秒等(每隔2天,多出1s)。

第三代日期類簡單使用

package class_Date;?import java.util.Date;import java.time.Instant;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;?public class ClassTest_ThirdDate {?    public static void main(String[] args) {        // 第三代日期的基本使用        LocalDateTime ldt = LocalDateTime.now(); // 日期時間對象//      LocalDate ldt = LocalDate.now();//LocalTime.now()//      System.out.println(ldt);?//      LocalTime ldt = LocalTime.now();//      System.out.println(ldt);        System.out.println(ldt.getYear());        System.out.println(ldt.getMonthValue());        System.out.println(ldt.getMonth());        System.out.println(ldt.getDayOfMonth());?        System.out.println(ldt.getHour());        System.out.println(ldt.getMinute());        System.out.println(ldt.getSecond());?        // 格式化        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小時mm分鐘ss秒");?        String myDate = dtf.format(ldt);        System.out.println(myDate);?        // Instant 和 Date        System.out.println("=========Instant 和 Date 相互轉換============");        Instant now = Instant.now();        System.out.println(now);        Date date = Date.from(now);        Instant instant = date.toInstant();?    }?}

 

第三代日期類常見方法

  1. LocalDate(日期)、LocalTime(時間)、LocalDateTime(日期時間)

    • 類似于Calendar

    • LocalDate只包含日期,可以獲取日期字段

    • LocalTime只包含時間,可以獲取時間字段

    • LocalDateTime包含日期+時間,可以獲取日期和時間字段

  2. Instant

    • 類似于Date

    • 提供了一系列和Date類轉換的方式

    • Instant——>Date:

    • Date date = Date.from(instant);

    • Date——>Instant:

    • Instant instant = date.toInstant();

  3. DateTimeFormatter格式日期類

    • 類似于SimpleDateFormat

    • DateTimeFormat dtf = DateTimeFormatter.ofPattern(格式);

    • String str = dtf.format(日期對象);

  4. 第三代日期類更多方法

    • LocalDateTime類

    • MonthDay類:檢查重復事件

    • 是否是閏年

    • 增加日期的某個部分

    • 使用plus方法測試增加時間的某個部分

    • 使用minus方法測試查看一年前和一年后的日期

    • 測試時間戳類:Instant ,相當于以前的Date

    • 測試DateTimeFormatter

package class_Date;import java.time.Instant;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.MonthDay;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoUnit;import java.util.Date;import org.junit.Test;public class ClassTest_AllDateMethods {public static void main(String[] args) {// TODO Auto-generated method stub// new AllDateMethods().hi();// new AllDateMethods().hello();}// JUnit 測試單元// 1. 配置快捷鍵 alt + J// 2. 如果要運行某個 測試單元,就選中方法名或光標定位在方法名,在運行 Junit// 3. 如果不選,就運行,就把所有的測試單元都運行// 4.@Test,代表此方法是測試單元,可以單獨運行測試@Testpublic void hi() {System.out.println("hi ");}@Testpublic void hello() {System.out.println("hello");}@Testpublic void testLocalDate() {// 獲取當前日期(只包含日期,不包含時間)LocalDate date = LocalDate.now();System.out.println(date);// 獲取日期的指定部分System.out.println("year:" + date.getYear());System.out.println("month:" + date.getMonth());System.out.println("day:" + date.getDayOfMonth());System.out.println("week:" + date.getDayOfWeek());// 根據指定的日期參數,創建LocalDate對象LocalDate of = LocalDate.of(2010, 3, 2);System.out.println(of);}// 測試LocalTime類@Testpublic void testLocalTime() {// 獲取當前時間(只包含時間,不包含日期)LocalTime time = LocalTime.now();System.out.println(time);// 獲取時間的指定部分System.out.println("hour:" + time.getHour());System.out.println("minute:" + time.getMinute());System.out.println("second:" + time.getSecond());System.out.println("nano:" + time.getNano());// 根據指定的時間參數,創建LocalTime對象LocalTime of = LocalTime.of(10, 20, 55);System.out.println(of);}// 測試LocalDateTime類@Testpublic void testLocalDateTime() { // 獲取當前時間(包含時間+日期)LocalDateTime time = LocalDateTime.now();// 獲取時間的指定部分 System.out.println("year:" + time.getYear());System.out.println("month:" + time.getMonthValue());System.out.println("day:" + time.getMonth());System.out.println("day:" + time.getDayOfMonth());System.out.println("hour:" + time.getHour());System.out.println("minute:" + time.getMinute());System.out.println("second:" + time.getSecond());System.out.println("nano:" + time.getNano());// 根據指定的時間參數,創建LocalTime對象LocalDateTime of = LocalDateTime.of(2020, 2, 2, 10, 20, 55);System.out.println(of);}@Testpublic void testMonthDay() {LocalDate birth = LocalDate.of(1994, 7, 14); // 生日MonthDay birthMonthDay = MonthDay.of(birth.getMonthValue(), birth.getDayOfMonth());LocalDate now = LocalDate.now(); // 當前日期MonthDay current = MonthDay.from(now);if (birthMonthDay.equals(current)) {System.out.println("今天生日");} else {System.out.println("今天不生日");}}// 判斷是否為閏年@Testpublic void testIsLeapYear() {LocalDate now = LocalDate.now();System.out.println(now.isLeapYear());}// 測試增加日期的某個部分@Testpublic void testPlusDate() {LocalDate now = LocalDate.now(); // 日期// 3年前 的日期LocalDate plusYears = now.plusDays(-1);System.out.println(plusYears);}// 使用plus方法測試增加時間的某個部分// 時間范圍判斷@Testpublic void testPlusTime() {LocalTime now = LocalTime.now();// 時間LocalTime plusHours = now.plusSeconds(-500);System.out.println(plusHours);}// 使用minus方法測試查看一年前和一年后的日期@Testpublic void testMinusTime() {LocalDate now = LocalDate.now();LocalDate minus = now.minus(1, ChronoUnit.YEARS);// LocalDate minus2 = now.minusYears(1);System.out.println(minus);}// 測試時間戳類:Instant ,相當于以前的Date類@Testpublic void testInstant() {Instant now = Instant.now();System.out.println(now);// 與Date類的轉換Date date = Date.from(now);System.out.println(date);Instant instant = date.toInstant();System.out.println(instant);}// 格式轉換@Testpublic void testDateTimeFormatter() {DateTimeFormatter pattern = DateTimeFormatter.ofPattern("MM-dd yyyy HH:mm:ss");// 將字符串轉換成日期LocalDateTime parse = LocalDateTime.parse("03-03 2017 08:40:50", pattern);System.out.println(parse);// 將日期轉換成字符串//LocalDateTime parse = LocalDateTime.now();String format = pattern.format(parse);System.out.println(format);}}

  


?

 

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java 8 日期/時間(Date Time)API指南 – 碼農網
Java 8 – 日期和時間實用技巧
Date操作
JDK1.8
java成神之——date和calendar日期的用法
Java 8 中新的 Date 和 Time 類入門詳解 – 碼農網
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 南华县| 象山县| 北川| 宜丰县| 犍为县| 临城县| 全椒县| 渑池县| 元阳县| 五峰| 容城县| 兴安盟| 周至县| 阿图什市| 阿尔山市| 逊克县| 老河口市| 增城市| 宁远县| 社会| 故城县| 克拉玛依市| 德格县| 化州市| 兴山县| 诏安县| 苍南县| 天水市| 吴堡县| 崇左市| 德化县| 高台县| 苍山县| 土默特左旗| 永和县| 都兰县| 类乌齐县| 军事| 长岛县| 晋城| 尚志市|