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

java的時(shí)間類(lèi)匯總(齊全)

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

前言

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

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

基礎(chǔ)類(lèi)

這個(gè)部分整理一下,我們常用的時(shí)間類(lèi):

類(lèi)簡(jiǎn)述
java.util.Date(父類(lèi))最基本的時(shí)間類(lèi)
java.sql.Date格式年月日,沒(méi)有無(wú)參構(gòu)造
java.sql.time時(shí)分秒
java.sql.Timestamp年月日時(shí)分秒毫秒
java.util.Calendar(日歷)可以表示年月日時(shí)分秒毫秒
java.text.DateFormat時(shí)間可以格式化

java.util.Date的用法實(shí)例

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

結(jié)果:

java.sql.Date的用法實(shí)例

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); ? // 相當(dāng)于重置一下時(shí)間,填入的還是Long值
System.out.println("[java.sql.Date] - setTime(0L) 后 " + date);

結(jié)果:

java.sql.Time的用法實(shí)例

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

結(jié)果:

java.sql.Timestamp 用法實(shí)例

Long systemTime = System.currentTimeMillis();
Timestamp timestamp = new Timestamp(systemTime);
// ? ? ?  timestamp.setTime(0L); ? // 這個(gè)不解釋和之前的一樣
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è)置納秒級(jí)時(shí)間
System.out.println("[java.sql.Timestamp] -setNanos(100) 后 " + timestamp);

結(jié)果:

java.util.Calendar 用法實(shí)例

這個(gè)不是線程安全的,這個(gè)的優(yōu)勢(shì)在于我可以獲取到相應(yīng)的年月日時(shí)分秒,這個(gè)主要通過(guò)get方法獲取,不過(guò)直接用底下的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());
?
 ? ? ? ?// 當(dāng)前時(shí)間 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用法實(shí)例

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

底下的是類(lèi)型的匹配的字符

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

其中的類(lèi)型為:

  • Text: 對(duì)于格式化,如果模式字母的數(shù)量是4以上,則使用完整的形式; 否則,如果有的話,使用簡(jiǎn)短或縮寫(xiě)形式。 對(duì)于解析,兩種形式都是接受的,與模式字母的數(shù)量無(wú)關(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: 對(duì)于格式化,模式字母的數(shù)量是最小位數(shù),而較短的數(shù)字將零填充到此數(shù)量。 對(duì)于解析,模式字母的數(shù)量將被忽略,除非需要分隔兩個(gè)相鄰的字段。
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:對(duì)于格式化,如果模式字母數(shù)為2,那么年份將被截?cái)酁?位數(shù); 否則被解釋為Number(不足補(bǔ)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()));

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

舉個(gè)常見(jià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);

接下來(lái)的時(shí)間類(lèi)都是jdk1.8新增的

相對(duì)來(lái)說(shuō),底下的時(shí)間是沒(méi)有偏移量的比如1就代表周一,而不要加。然后還是線程安全的

底下的我放在一起做個(gè)比較

LocalDate,LocalTime,LocalDateTime用法實(shí)例

/**
 * 獲取當(dāng)前的日期
 */
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不變)
 * 這邊就舉一個(gè)例
 */
LocalDateTime localDateTime2 = localDateTime1.withYear(2011);
System.out.println("[java.time.LocalDateTime ] --原來(lái) 2000年 " + localDateTime1);
System.out.println("[java.time.LocalDateTime ] --原來(lái) 2000年  withYear(2011) " + localDateTime2);
?
/**
 * 加 減操作
 * 舉一個(gè)加的例子
 * minusXXX 這個(gè)是減
 */
System.out.println("[java.time.LocalDateTime ] --原來(lái) 12月份 " + localDateTime1.getMonthValue());
System.out.println("[java.time.LocalDateTime ] --原來(lái) 12月份  plusMonths(1) " + localDateTime1.plusMonths(1).getMonthValue());

DateTimeFormatter

這個(gè)主要可以用來(lái)進(jìn)行String 和 LocalXXX之間的轉(zhuǎn)化,案例

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

總結(jié)

這邊總結(jié)了基本常用的時(shí)間類(lèi),沒(méi)有把所有的方法都列出來(lái),不過(guò)常見(jiàn)的列出來(lái)了,如果沒(méi)有強(qiáng)制要求建議使用 1.8

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

相關(guān)文章

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

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

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

    Java 字符串截取及常見(jiàn)場(chǎng)景與方法詳解

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

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

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

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

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

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

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

    maven升級(jí)版本后報(bào)錯(cuò):Blocked mirror for repositories

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

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

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

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

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

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

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

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

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

最新評(píng)論

东乌| 龙江县| 三明市| 柳州市| 南川市| 沧源| 宁陵县| 靖州| 芜湖市| 廉江市| 大化| 响水县| 襄城县| 深圳市| 西丰县| 婺源县| 綦江县| 揭东县| 黄大仙区| 沙洋县| 搜索| 民和| 基隆市| 乌什县| 平利县| 苏州市| 阳春市| 济宁市| 鸡西市| 高邑县| 兰州市| 扎赉特旗| 磐石市| 瑞丽市| 岳阳县| 呼伦贝尔市| 北宁市| 教育| 武胜县| 嫩江县| 叶城县|