最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java的時間類匯總(齊全)

 更新時間:2022年09月09日 09:18:02   作者:SunDuncan???????  
這篇文章主要介紹了java的時間類匯總(齊全),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下

前言

在項目開發(fā)中,我們用到了很多的時間類,很容易搞混,每次都要去網(wǎng)上查一遍文檔,現(xiàn)在自己整理一下,忘記了直接查,沒網(wǎng)也能直接擼碼。同時自己也鞏固一下。對時間類不熟悉的朋友也可以借鑒一下。

這邊主要是整理1.8的方法,如果方法已經(jīng)被棄用了則不在整理

基礎(chǔ)類

這個部分整理一下,我們常用的時間類:

簡述
java.util.Date(父類)最基本的時間類
java.sql.Date格式年月日,沒有無參構(gòu)造
java.sql.time時分秒
java.sql.Timestamp年月日時分秒毫秒
java.util.Calendar(日歷)可以表示年月日時分秒毫秒
java.text.DateFormat時間可以格式化

java.util.Date的用法實例

Date date = new Date();
//Date date1 = new Date(0L); // 可以傳入Long值,表示距離1970年1月1日00:00:00 毫秒值  // 默認當前
System.out.println("[java.util.Date] " + date); ? ? ? ? ? ?// 默認輸出格式
System.out.println("[java]date.Date]--getTime() " + date.getTime()); ?// 時間戳 距離1970.1.1的毫秒數(shù)
System.out.println("[java]date.Date]--toInstant() " + date.toInstant()); // 轉(zhuǎn)化成Instant格式

結(jié)果:

java.sql.Date的用法實例

java.sql.Date date = new java.sql.Date(new Date().getTime()); // 構(gòu)造函數(shù) 傳入Long值,是距離1970年1月1日的毫秒值
System.out.println("[java.sql.Date] " + date);
date.setTime(0L); ? // 相當于重置一下時間,填入的還是Long值
System.out.println("[java.sql.Date] - setTime(0L) 后 " + date);

結(jié)果:

java.sql.Time的用法實例

// System.currentTimeMillis() 獲取的值 和 new java.util.Date的getTime的值是一樣的
// 但這個不能保證唯一,如果在短時間內(nèi)重復(fù)獲取可能會獲得相同的值
Time time = new Time(System.currentTimeMillis()); // 構(gòu)造函數(shù) 傳入的Long的值
System.out.println("[java.sql.Time] " + time); ? // 時:分:秒
time.setTime(0L); // 重置時間
System.out.println("[java.sql.Time] - setTime(0L) 后 " + time);

結(jié)果:

java.sql.Timestamp 用法實例

Long systemTime = System.currentTimeMillis();
Timestamp timestamp = new Timestamp(systemTime);
// ? ? ?  timestamp.setTime(0L); ? // 這個不解釋和之前的一樣
System.out.println("[System.currentTimeMillis()] " + systemTime);
System.out.println("[java.sql.Timestamp] " + timestamp);
System.out.println("[java.sql.Timestamp] - getNanos() " + timestamp.getNanos());
System.out.println("[java.sql.Timestamp] - getTime() " + timestamp.getTime());
timestamp.setNanos(892317); ?// 設(shè)置納秒級時間
System.out.println("[java.sql.Timestamp] -setNanos(100) 后 " + timestamp);

結(jié)果:

java.util.Calendar 用法實例

這個不是線程安全的,這個的優(yōu)勢在于我可以獲取到相應(yīng)的年月日時分秒,這個主要通過get方法獲取,不過直接用底下的simpleDateFormat,這邊做了解

 ? ? ? ?Calendar calendar = new GregorianCalendar();
 ? ? ? ?System.out.println("[java.util.Calendar--getTime] " + calendar.getTime());
 ? ? ? ?System.out.println("[java.util.Calendar--getWeekYear] " + calendar.getWeekYear());
 ? ? ? ?System.out.println("[java.util.Calendar--getMinimalDaysInFirstWeek ] " ?+ calendar.getMinimalDaysInFirstWeek());
 ? ? ? ?System.out.println("[java.util.Calendar--getFirstDayOfWeek ] " ?+ calendar.getFirstDayOfWeek());
 ? ? ? ?System.out.println("[java.util.Calendar--getTimeInMillis ] " ?+ calendar.getTimeInMillis());
 ? ? ? ?System.out.println("[java.util.Calendar--getWeeksInWeekYear ] " ?+ calendar.getWeeksInWeekYear());
 ? ? ? ?System.out.println("[java.util.Calendar--getMinimalDaysInFirstWeek ] " ?+ calendar.getMinimalDaysInFirstWeek());
?
 ? ? ? ?// 當前時間 2022-09-07
 ? ? ? ?System.out.println("[java.util.Calendar--calendar.getActualMaximum(Calendar.DATE)] " + calendar.getActualMaximum(Calendar.DATE));
 ? ? ? ?System.out.println("[java.util.Calendar--calendar.get(Calendar.YEAR)] " + calendar.get(Calendar.YEAR));
 ? ? ? ?System.out.println("[java.util.Calendar--calendar.get(Calendar.MONTH)] " + calendar.get(Calendar.MONTH));
 ? ? ? ?System.out.println("[java.util.Calendar--calendar.get(Calendar.DATE)] " + calendar.get(Calendar.DATE));
 ? ? ? ?System.out.println("[java.util.Calendar--calendar.get(Calendar.DAY_OF_WEEK) " + calendar.get(Calendar.DAY_OF_WEEK));
 ? ? ? ?System.out.println("[java.util.Calendar--calendar.getMaximum(Calendar.DATE) " + calendar.getMaximum(Calendar.DATE));

java.text.SimpleDateFormat用法實例

這個主要是可以自己去定義輸出/輸入時間的格式,比如Date默認的是 1970-01-01,現(xiàn)在可以修改成必入 1970/01/01

底下的是類型的匹配的字符

LetterDate or Time ComponentPresentationExamples
GEra designatorTextAD
yYearYear199696
YWeek yearYear200909
MMonth in year (context sensitive)MonthJulyJul07
LMonth in year (standalone form)MonthJulyJul07
wWeek in yearNumber27
WWeek in monthNumber2
DDay in yearNumber189
dDay in monthNumber10
FDay of week in monthNumber2
EDay name in weekTextTuesdayTue
uDay number of week (1 = Monday, ..., 7 = Sunday)Number1
aAm/pm markerTextPM
HHour in day (0-23)Number0
kHour in day (1-24)Number24
KHour in am/pm (0-11)Number0
hHour in am/pm (1-12)Number12
mMinute in hourNumber30
sSecond in minuteNumber55
SMillisecondNumber978
zTime zoneGeneral time zonePacific Standard TimePSTGMT-08:00
ZTime zoneRFC 822 time zone-0800
XTime zoneISO 8601 time zone-08-0800-08:00

其中的類型為:

  • Text: 對于格式化,如果模式字母的數(shù)量是4以上,則使用完整的形式; 否則,如果有的話,使用簡短或縮寫形式。 對于解析,兩種形式都是接受的,與模式字母的數(shù)量無關(guān)。
SimpleDateFormat sdf = new SimpleDateFormat("E");
SimpleDateFormat sdf1 = new SimpleDateFormat("EE");
SimpleDateFormat sdf2 = new SimpleDateFormat("EEE");
SimpleDateFormat sdf3 = new SimpleDateFormat("EEEE");
?
System.out.println("[java.text.SimpleDateFormat--E] " + sdf.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--EE] " + sdf1.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--EEE] " + sdf2.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--EEEE] " + sdf3.format(new Date()));

  • Number: 對于格式化,模式字母的數(shù)量是最小位數(shù),而較短的數(shù)字將零填充到此數(shù)量。 對于解析,模式字母的數(shù)量將被忽略,除非需要分隔兩個相鄰的字段。
SimpleDateFormat sdf4 = new SimpleDateFormat("w");
SimpleDateFormat sdf5 = new SimpleDateFormat("ww");
SimpleDateFormat sdf6 = new SimpleDateFormat("www");
SimpleDateFormat sdf7 = new SimpleDateFormat("wwww");
?
System.out.println("[java.text.SimpleDateFormat--w] " + sdf4.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--ww] " + sdf5.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--www] " + sdf6.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--wwww] " + sdf7.format(new Date()));

  • Year:對于格式化,如果模式字母數(shù)為2,那么年份將被截斷為2位數(shù); 否則被解釋為Number(不足補0)
 SimpleDateFormat sdf8 = new SimpleDateFormat("y");
SimpleDateFormat sdf9 = new SimpleDateFormat("yy");
SimpleDateFormat sdf10 = new SimpleDateFormat("yyy");
SimpleDateFormat sdf11 = new SimpleDateFormat("yyyy");
SimpleDateFormat sdf12 = new SimpleDateFormat("yyyyy");
?
System.out.println("[java.text.SimpleDateFormat--y] " + sdf8.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--yy] " + sdf9.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--yyy] " + sdf10.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--yyyy] " + sdf11.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--yyyyy] " + sdf12.format(new Date()));

  • Month: 如果模式字母數(shù)為3以上,則該月份被解釋為text; 否則,它被解釋為number
SimpleDateFormat sdf8 = new SimpleDateFormat("M");
SimpleDateFormat sdf9 = new SimpleDateFormat("MM");
SimpleDateFormat sdf10 = new SimpleDateFormat("MMM");
SimpleDateFormat sdf11 = new SimpleDateFormat("MMMM");
SimpleDateFormat sdf12 = new SimpleDateFormat("MMMMM");
?
System.out.println("[java.text.SimpleDateFormat--M] " + sdf8.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--MM] " + sdf9.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--MMM] " + sdf10.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--MMMM] " + sdf11.format(new Date()));
System.out.println("[java.text.SimpleDateFormat--MMMMM] " + sdf12.format(new Date()));

其他的類型和時區(qū)有關(guān),暫時不去做描述先知道上面的常見的幾個

舉個常見的例子:

SimpleDateFormat sdf13 = new SimpleDateFormat("y-MM-dd kk:mm:ss"); // 這里的年也可以用 yyyy,這樣子和數(shù)量一致,好理解罷了
System.out.println("[java.text.SimpleDateFormat--y-MM-dd kk:mm:ss] " + sdf13.format(new Date()));

 常用方法 parse,format

SimpleDateFormat sdf13 = new SimpleDateFormat("y-MM-dd");
// 字符串轉(zhuǎn)化為Date, 需要拋出異常
Date date = sdf13.parse("2022-01-02");
System.out.println("[java.text.SimpleDateFormat--parse] " + date.toString());
// Date轉(zhuǎn)化為String
String currentDateString = sdf13.format(new Date());
System.out.println("[java.text.SimpleDateFormat--format] " + currentDateString);

接下來的時間類都是jdk1.8新增的

相對來說,底下的時間是沒有偏移量的比如1就代表周一,而不要加。然后還是線程安全的

底下的我放在一起做個比較

LocalDate,LocalTime,LocalDateTime用法實例

/**
 * 獲取當前的日期
 */
LocalDate localDate = LocalDate.now();
System.out.println("[java.time.LocalDate] -- now " + localDate);
LocalTime localTime = LocalTime.now();
System.out.println("[java.time.LocalTime ] -- now " + localTime);
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("[java.time.LocalDateTime ] -- now " + localDateTime);
/**
 * 獲取指定的日期
 */
LocalDate localDate1 = LocalDate.of(2022,9,7);
System.out.println("[java.time.LocalDate] -- of " + localDate1);
LocalTime localTime1 = LocalTime.of(12,53,18);
System.out.println("[java.time.LocalTime] -- of " + localTime1);
LocalDateTime localDateTime1 = LocalDateTime.of(2000, 12,3,12,3,4);
System.out.println("[java.time.LocalDateTime ] -- of " + localDateTime1);
/**
 * get的一些方法
 */
System.out.println("[java.time.LocalDateTime ] -- getYear " + localDate1.getYear());
System.out.println("[java.time.LocalDateTime ] -- getDayOfMonth " + localDate1.getDayOfMonth());
System.out.println("[java.time.LocalDateTime ] -- getMonth " + localDate1.getMonth());
System.out.println("[java.time.LocalDateTime ] -- getMonthValue " + localDate1.getMonthValue());
?
?
?
/**
 * with 就是重新賦值(原LocalDateTime不變)
 * 這邊就舉一個例
 */
LocalDateTime localDateTime2 = localDateTime1.withYear(2011);
System.out.println("[java.time.LocalDateTime ] --原來 2000年 " + localDateTime1);
System.out.println("[java.time.LocalDateTime ] --原來 2000年  withYear(2011) " + localDateTime2);
?
/**
 * 加 減操作
 * 舉一個加的例子
 * minusXXX 這個是減
 */
System.out.println("[java.time.LocalDateTime ] --原來 12月份 " + localDateTime1.getMonthValue());
System.out.println("[java.time.LocalDateTime ] --原來 12月份  plusMonths(1) " + localDateTime1.plusMonths(1).getMonthValue());

DateTimeFormatter

這個主要可以用來進行String 和 LocalXXX之間的轉(zhuǎn)化,案例

 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
 System.out.println(dateTimeFormatter.format(LocalDateTime.now()));

總結(jié)

這邊總結(jié)了基本常用的時間類,沒有把所有的方法都列出來,不過常見的列出來了,如果沒有強制要求建議使用 1.8

到此這篇關(guān)于java的時間類匯總(齊全)的文章就介紹到這了,更多相關(guān)java時間類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java使用sqlite 數(shù)據(jù)庫如何生成db文件

    詳解Java使用sqlite 數(shù)據(jù)庫如何生成db文件

    這篇文章主要介紹了詳解Java 操作sqllite 數(shù)據(jù)庫如何生成db文件的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Java 字符串截取及常見場景與方法詳解

    Java 字符串截取及常見場景與方法詳解

    在 Java 開發(fā)中,截取字符串是一個非常常見的操作,無論是獲取文件名還是提取某些特定內(nèi)容,本文詳細介紹了截取字符串最后一位及其他常見截取操作的多種方法,幫助開發(fā)者快速上手,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • 巧妙mybatis避免Where 空條件的尷尬

    巧妙mybatis避免Where 空條件的尷尬

    這篇文章主要介紹了巧妙mybatis避免Where 空條件的尷尬,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • SpringBoot詳解整合Spring?Boot?Admin實現(xiàn)監(jiān)控功能

    SpringBoot詳解整合Spring?Boot?Admin實現(xiàn)監(jiān)控功能

    這篇文章主要介紹了SpringBoot整合Spring?Boot?Admin實現(xiàn)服務(wù)監(jiān)控,內(nèi)容包括Server端服務(wù)開發(fā),Client端服務(wù)開發(fā)其中Spring?Boot?Admin還可以對其監(jiān)控的服務(wù)提供告警功能,如服務(wù)宕機時,可以及時以郵件方式通知運維人員,感興趣的朋友跟隨小編一起看看吧
    2022-07-07
  • 如何配置Spring Boot中的Jackson序列化

    如何配置Spring Boot中的Jackson序列化

    在開發(fā)基于Spring Boot的應(yīng)用程序時,Jackson是默認的JSON序列化和反序列化工具,本文將詳細介紹如何在Spring Boot中配置Jackson,以滿足這些需求,感興趣的朋友一起看看吧
    2025-04-04
  • maven升級版本后報錯:Blocked mirror for repositories

    maven升級版本后報錯:Blocked mirror for repositories

    本文主要介紹了maven升級版本后報錯:Blocked mirror for repositories,文中的解決方法非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • Spring Cloud Gateway替代zuul作為API網(wǎng)關(guān)的方法

    Spring Cloud Gateway替代zuul作為API網(wǎng)關(guān)的方法

    本文簡要介紹如何使用Spring Cloud Gateway 作為API 網(wǎng)關(guān)(不是使用zuul作為網(wǎng)關(guān)),結(jié)合實例代碼給大家詳細講解,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • Java C++題解leetcode 1684統(tǒng)計一致字符串的數(shù)目示例

    Java C++題解leetcode 1684統(tǒng)計一致字符串的數(shù)目示例

    這篇文章主要為大家介紹了Java C++題解leetcode 1684統(tǒng)計一致字符串的數(shù)目示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • MybatisPlus中如何調(diào)用Oracle存儲過程

    MybatisPlus中如何調(diào)用Oracle存儲過程

    這篇文章主要介紹了MybatisPlus中如何調(diào)用Oracle存儲過程的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 淺析java的foreach循環(huán)

    淺析java的foreach循環(huán)

    foreach語句是java5之后的新特征之一,在循環(huán)遍歷數(shù)組、集合方面更加簡潔,有需要的朋友可以參考一下
    2013-12-12

最新評論

固始县| 靖州| 迁安市| 日照市| 察雅县| 当雄县| 南丹县| 宁河县| 安龙县| 井陉县| 榆树市| 钟祥市| 筠连县| 轮台县| 从江县| 鹤庆县| 曲麻莱县| 大连市| 临朐县| 青岛市| 莎车县| 习水县| 余干县| 福鼎市| 通河县| 家居| 旬阳县| 英德市| 禹州市| 从化市| 平遥县| 永川市| 东光县| 蒙自县| 沿河| 南丹县| 星座| 安阳市| 屯昌县| 固原市| 时尚|