Java的時間類

1. 日期類

1.1 第一代日期類

1) Date: 精確到毫秒,代表特定的瞬間
2) SimpleDateFormat: 格式和解析日期的類
????????SimpleDateFormat 格式化和解析日期的具體類。它允許進行格式化(日期-→>文本)、解析(文本->日期)和規范化.

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/***@author
*@version1.0*/public class Date01{public static void main(String[ ] args ) throws ParseException{
//解讀
//1. 獲取當前系統時間
//2. 這里的Date 類是在java.util 包
//3. 默認輸出的日期格式是國外的方式, 因此通常需要對格式進行轉換Date d1 = new Date(); //獲取當前系統時間System.out.println("當前日期=" + d1);Date d2 = new Date(9234567); //通過指定毫秒數得到時間System.out.println("d2=" + d2); //獲取某個時間對應的毫秒數//解讀
//1. 創建 SimpleDateFormat 對象,可以指定相應的格式
//2. 這里的格式使用的字母是規定好,不能亂寫SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 hh:mm:ss E");String format = sdf.format(d1); // format:將日期轉換成指定格式的字符串System.out.println("當前日期=" + format);//解讀
//1. 可以把一個格式化的String 轉成對應的 Date//2. 得到Date 仍然在輸出時,還是按照國外的形式,如果希望指定格式輸出,需要轉換
//3. 在把String-> Date , 使用的 sdf 格式需要和你給的String的格式一樣,否則會拋出轉換異常String s = "1996 年 01 月 01 日 10:20:30 星期一";Date parse = sdf.parse(s);System.out.println("parse=" + sdf.format(parse));
}}

1.2 第二代日期類

1) 第二代日期類,主要就是Calendar類(日歷)。
????????public abstract class Calendar extends object implements Serializable,Cloneable, ????????Comparable<calendar>
2) Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH.DAY_OF_MONTH、HOUR等 日歷室段 之間的轉換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。

 import java.util.Calendar;/***@author
*@version1.0*/public class Calendar_{public static void main(String[]args){//解讀
//1.Calendar是一個抽象類,并且構造器是private//2.可以通過getInstance()來獲取實例
//3.提供大量的方法和字段提供給程序員
//4.Calendar沒有提供對應的格式化的類,因此需要程序員自己組合來輸出(靈活)//5.如果我們需要按照24小時進制來獲取時間,Calendar.HOUR==改成=>Calendar.HOUR_OF_DAYCalendarc=Calendar.getInstance();//創建日歷類對象//比較簡單,自由System.out.println("c="+c);//2.獲取日歷對象的某個日歷字段System.out.println("年:"+c.get(Calendar.YEAR));//這里為什么要+1,因為Calendar返回月時候,是按照0開始編號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)+""+c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));} }

1.3 第三代日期類

前面兩代日期類的不足分析
????????JDK 1.0中包含了一個java.util.Date類,但是它的大多數方法已經在JDK 1.1引入Calendar類之后被棄用了。而Calendar也存在問題是:
1) 可變性:像日期和時間這樣的類應該是不可變的。
2) 偏移性:Date中的年份是從1900開始的,而月份都從0開始。
3) 格式化:格式化只對Date有用,Calendar則不行。
4) 此外,它們也不是線程安全的; 不能處理閏秒等(每隔2天,多出1s).

? ? ? ?1.? LocalDate(日期/年月日)、LocalTime(時間/時分秒)、LocalDateTime(日期時間/年月日時分秒)JDK8加入
????????LocalDate 只包含日期,可以獲取日期字段
????????LocalTime 只包含時間,可以獲取時間字段
????????LocalDateTime 包含日期+時間,可以獲取日期和時間字段
????????LocalDateTime ldt = LocalDateTime.now();//LocalDate.now(;//LocalTime.now()System.out.println(ldt);
????????ldt.getYear();ldt.getMonthValue();ldt.getMonth();ldt.getDayofMonth( );
????????ldt.qetHour(): ldt.qetMinute():ldt.qetSecond():

 import java.time.Instant;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.format.DateTimeFormatter;import java.util.ArrayList;import java.util.Collection;/**
* @author 
* @version 1.0*/public class LocalDate_ {public static void main(String[] args) {//第三代日期
//解讀
//1. 使用now() 返回表示當前日期時間的 對象LocalDateTime ldt = LocalDateTime.now(); //LocalDate.now();//LocalTime.now()System.out.println(ldt);//2. 使用DateTimeFormatter 對象來進行格式化
// 創建 DateTimeFormatter 對象DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String format = dateTimeFormatter.format(ldt);System.out.println("格式化的日期=" + format);System.out.println("年=" + ldt.getYear());System.out.println("月=" + ldt.getMonth());System.out.println("月=" + ldt.getMonthValue());System.out.println("日=" + ldt.getDayOfMonth());System.out.println("時=" + ldt.getHour());System.out.println("分=" + ldt.getMinute());System.out.println("秒=" + ldt.getSecond());LocalDate now = LocalDate.now(); //可以獲取年月日LocalTime now2 = LocalTime.now();//獲取到時分秒
//提供 plus 和 minus方法可以對當前時間進行加或者減
//看看890 天后,是什么時候 把 年月日-時分秒LocalDateTime localDateTime = ldt.plusDays(890);System.out.println("890 天后=" + dateTimeFormatter.format(localDateTime));//看看在 3456分鐘前是什么時候,把 年月日-時分秒輸出LocalDateTime localDateTime2 = ldt.minusMinutes(3456);System.out.println("3456 分鐘前 日期=" + dateTimeFormatter.format(localDateTime2));} }

1.4 DateTimeFormatter 格式日期類

類似于 SimpleDateFormat
DateTimeFormat dtf =DateTimeFormatter.ofPattern(格式);
String str = dtf.format(日期對象);
案例:

LocalDateTime ldt = LocalDateTime.now0;
//關于DateTimeFormatter的各個格式參數,需要看jdk8的文檔.
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日HH小時mm分鐘ss秒");
String strDate = dtf.format(ldt);

1.5 Instant 時間戳

類似于Date
提供了一系列和Date類轉換的方式
????????lnstant—>Date:
????????Date date = Date.from(instant);
????????Date—>lnstant:
????????lnstant instant = date.tolnstant);
案例:

Instant now = Instant.now();
System.out.println(now);
Date date =Date.from(now);
???????lnstant instant = date.tolnstant();
 import java.time.Instant;import java.util.Date;/***@author
*@version1.0*/public class Instant_{public static void main(String[]args){//1.通過靜態方法now()獲取表示當前時間戳的對象Instant now = Instant.now();System.out.println(now);//2.通過from可以把Instant轉成DateDatedate=Date.from(now);
//3. 通過 date 的toInstant() 可以把 date 轉成Instant 對象Instant instant = date.toInstant();} }

1.6 第三代日期類更多方法

LocalDateTime類
MonthDay類: 檢查重復事件是
否是閏年
增加日期的某個部分
使用plus方法測試增加時間的某個部分
使用minus方法測試查看一年前和一年后的日期
其他的方法,就不說,使用的時候,自己查看API使用即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10432.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10432.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10432.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java基礎(27)Web應用中web.xml文件中可以配置哪些內容

在Java Web應用中&#xff0c;web.xml文件&#xff08;也被稱為部署描述符&#xff09;是一個核心的配置文件&#xff0c;它位于應用的WEB-INF目錄下。web.xml文件中可以配置多種不同的組件和參數&#xff0c;它們用來定義和調整應用的行為。以下是一些web.xml中可以配置的內容…

Web3 Tools - 助記詞生成(完整代碼)

工具介紹 Web3Tools - 助記詞生成 完整代碼 代碼路徑 import React, { useState } from react; import Grid from mui/material/Grid; import Paper from mui/material/Paper; import Typography from mui/material/Typography; import Button from mui/material/Button; i…

接口自動化測試很難掌握嗎?

一. 什么是接口測試 接口測試是一種軟件測試方法&#xff0c;用于驗證不同軟件組件之間的通信接口是否按預期工作。在接口測試中&#xff0c;測試人員會發送請求并檢查接收到的響應&#xff0c;以確保接口在不同場景下都能正常工作。 就工具而言&#xff0c;常見的測試工具有…

AI+招聘:ATS招聘系統讓HR簡歷篩選精準度達95%!

一提起招聘過程&#xff0c;許多HR就會想到那堆疊如山的簡歷、讓人眼花繚亂的招聘網站以及瑣碎繁復的手動數據錄入。據統計&#xff0c;平均每位HR每年要處理數百甚至上千份簡歷&#xff0c;耗費大量精力在初級篩選和跟進上。   市場調查機構近日發布的一份報告顯示&#xff…

【深度學習】YOLO源碼中的mAP計算代碼的理解筆記(大部分代碼逐行+基礎解釋)

提示&#xff1a;本篇博客是在閱讀了YOLO源碼中的mAP計算方法的代碼后加上官方解釋以及自己的debug調試理解每一步是怎么操作的。由于是大部分代碼進行了逐行解釋&#xff0c;所以篇幅過長。 文章目錄 前言一、輸入格式處理1.1 轉換公式二、init&#xff1a;初始化2.1 iouv2.2 …

AND Sorting題解

AND Sorting題解 AND Sorting 詳細 題解()題目原意解題思路這是代碼??ZZZB. AND Sorting(我也是有底線的)AND Sorting 詳細 題解() 洛谷 原題,CF 原題 洛谷 AC記錄,CF AC記錄 題目原意 給你一個由從 0 0 0 到 n ? 1 n-1 n?1 的整數組成的排列 p p p (每個整數都…

如何在沒有頭文件的情況下調用動態庫的類的私有成員函數

如何在沒有頭文件的情況下調用動態庫的類成員函數 編寫一個不存在虛函數的類測試代碼 _ZN6CClass4showEv如何獲取調用 源代碼 https://github.com/TonyBeen/study/tree/master/dlopen 編寫一個不存在虛函數的類 // class.h #pragma onceclass CClass { public:CClass();~CCla…

【Leetcode每日一題】 綜合練習 - 電話號碼的字母組合(難度??)(75)

1. 題目解析 題目鏈接&#xff1a;電話號碼的字母組合 這個問題的理解其實相當簡單&#xff0c;只需看一下示例&#xff0c;基本就能明白其含義了。 2.算法原理 算法設計思路 在解決這類問題時&#xff0c;我們需要認識到每個位置上的數字對應的字符集合是相互獨立的&#…

什么是翹尾因素

在有關CPI 的分析文章和新聞稿件中&#xff0c;經常會出現“翹尾因素”或“翹尾影響” 等詞匯&#xff0c;這是分析同比價格指數變動幅度時所特有的概念。那么什么是“翹尾因素” 或“翹尾影響”呢&#xff1f; 一、什么是翹尾因素 “翹尾因素”是指上年價格上漲&#xff08;…

使用scrollIntoView滾動元素到可視區域

1. 實現效果 點擊頂部標簽欄&#xff0c;讓對應的內容出現在可視區域&#xff1a; 2. scrollIntoView () scrollIntoView 是一個內置的 JavaScript 方法&#xff0c;用于將元素滾動到視口可見的位置。它通常用于用戶界面中&#xff0c;以便用戶能輕松看到特定的元素。此方…

perf 中的 cpu-cycles event 介紹

perf 中的 cpu-cycles event 介紹 cycles簡介 cycles事件記錄處理器核心執行的時鐘周期數。每個時鐘周期代表處理器內部時鐘振蕩器的一個周期。這個事件通常用于衡量處理器的執行速度&#xff0c;因為它直接反映了指令執行所需的時間。一個較高的cycles計數可能意味著代碼執行…

JavaScript中指定大小分割數組的一種實現

今天分享一個使用JavaScript分割數組為多個自數組的方法實現。我使用它的場景如下&#xff1a; 給定一個數組 arr 和指定大小 fixed&#xff1a; const arr [{id: 1,name: name1},{id: 2,name: name2},{id: 3,name: name3},{id: 4,name: name4},{id: 5,name: name5},{id: 6,…

2024版本idea集成SpringBoot + Ai 手寫一個chatgpt 【推薦】

題目&#xff1a;SpringBoot OpenAi 在這里獲取key和url&#xff1a;獲取免費key base-url為這兩個&#xff1a; 話不多說直接來&#xff01; 一、簡介 Spring AI 是 AI 工程的應用框架。其目標是將 Spring 生態系統設計原則&#xff08;如可移植性和模塊化設計&#xff…

暗區突圍pc資格 暗區突圍pc端測試資格獲取

《暗區突圍》的誕生&#xff0c;仿佛在游戲界投下了一枚深水炸彈&#xff0c;它不僅僅是射擊游戲的新標桿&#xff0c;更是對玩家策略思維、生存直覺與團隊協作能力的一次全面考驗。在這個精心構建的虛擬戰場中&#xff0c;每一次踏入暗區&#xff0c;都是對未知的探索&#xf…

【練習4】

1.兩數之和 暴力&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {int n nums.size();vector<int> res(2, -1); // 初始化結果為-1for (int i 0; i < n; i) {int temp nums[i];for (int j i 1; j <…

Python 技巧:滿意的逗號放置

當你在 Python 中添加或刪除列表、字典或集合中的項目時&#xff0c;記住總是將所有行結尾加一個逗號。這是一個非常有用的技巧&#xff0c;可以幫助你避免一些常見的問題。 不確定我所說的什么&#xff1f;讓我給你一個快速示例。假設你在代碼中有一個名單列表&#xff1a; …

銀行家算法簡易實現

這里寫目錄標題 實驗要求內容代碼main.cppmyfunc.hmyfunc.cpp 運行結果與分析 實驗要求 程序可以針對不同進程的請求進行判斷&#xff0c;并決定是否滿足其需求。算法程序需要設計合理的數據結構&#xff0c;對資源情況、進程相關數據進行存儲。 內容 隨機生成數據, 并校驗數據…

做視頻號小店,怎么找達人合作?這里有詳細講解

大家好&#xff0c;我是電商笨笨熊 做視頻號小店是沒有自然流量的&#xff0c;這點剛入駐的新玩家還不清楚&#xff1b; 因此很多老電商玩家們還想著繼續拿其他平臺動銷自然流的玩法去做視頻號&#xff1b; 只能說這種方式在視頻號是完全行不通的&#xff0c;當下想要推廣售…

設計模式2——原則篇:依賴倒轉原則、單一職責原則、合成|聚合復用原則、開放-封閉原則、迪米特法則、里氏代換原則

設計模式2——設計原則篇 目錄 一、依賴倒轉原則 二、單一職責原則&#xff08;SRP&#xff09; 三、合成|聚合復用原則&#xff08;CARP&#xff09; 四、開放-封閉原則 五、迪米特法則&#xff08;LoD&#xff09; 六、里氏代換原則 七、接口隔離原則 八、總結 一、依賴…

Python-VBA函數之旅-setattr函數

目錄 一、setattr函數的常見應用場景 二、setattr函數使用注意事項 三、如何用好setattr函數&#xff1f; 1、setattr函數&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推薦閱讀&#xff1a; 個人主頁&#xff1a; https://blog.csdn.net/ygb_1024?…