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

Java 日期時(shí)間工具包–java.time的使用

 更新時(shí)間:2021年04月23日 10:42:42   作者:攻城獅·正  
這篇文章主要介紹了Java 日期時(shí)間工具包–java.time的使用,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下

從JDK8開(kāi)始,Java 提供了新的日期時(shí)間處理方法用來(lái)代替舊的日期類(Date)。本章主要講它們的用法以及和舊日期類互轉(zhuǎn)。

日期和時(shí)間

Java 新的日期工具類在 java.time 包及子包中 ,日期類主要有 LocalDateTime、LocalDate、LocalTime ,這三個(gè)API類很相似,以下是常用API及說(shuō)明。

now()

靜態(tài)方法,獲取當(dāng)前時(shí)間日期。示例:LocalDateTime.now()

of()

靜態(tài)方法,指定日期時(shí)間生成LoalDateTime。示例:LocalDateTime.of(2020, 2, 9, 8, 0, 0)。如果是LocalDate,則只能指定年月日。如果是LocalTime則只能指定時(shí)分秒。

plus()

在當(dāng)前時(shí)間的基礎(chǔ)上增加時(shí)間并返回新的LocalDateTime,不會(huì)改變?cè)瓉?lái)時(shí)間。一般使用以下方法處理更簡(jiǎn)單:

方法 說(shuō)明 備注
plusYears(1) 增加1年 LocalTime無(wú)此方法
plusMonths(1) 增加1個(gè)月 LocalTime無(wú)此方法
plusWeeks(1) 增加1周 LocalTime無(wú)此方法
plusDays(1) 增加1天 LocalTime無(wú)此方法
plusHours(1) 增加1小時(shí) LocalDate無(wú)此方法
plusMinutes(1) 增加1分鐘 LocalDate無(wú)此方法
plusSeconds(1) 增加1秒 LocalDate無(wú)此方法

minus()

在當(dāng)前時(shí)間的基礎(chǔ)上減去時(shí)間并返回新的LocalDateTime,不會(huì)改變?cè)瓉?lái)時(shí)間。一般使用以下方法處理更簡(jiǎn)單:

方法 說(shuō)明 備注
minusYears(1) 減少1年 LocalTime無(wú)此方法
minusMonths(1) 減少1個(gè)月 LocalTime無(wú)此方法
minusWeeks(1) 減少1周 LocalTime無(wú)此方法
minusDays(1) 減少1天 LocalTime無(wú)此方法
minusHours(1) 減少1小時(shí) LocalDate無(wú)此方法
minusMinutes(1) 減少1分鐘 LocalDate無(wú)此方法
minusSeconds(1) 減少1秒 LocalDate無(wú)此方法

從上面幾個(gè)示例可以看到這三個(gè)類的區(qū)別,LocalDate不能處理時(shí)間,LocalTime不能處理日期,LocalDateTime是LocalDate和LocalTime的集合。

  • 獲取從1970-01-01 00:00:00到當(dāng)前對(duì)象時(shí)間的毫秒數(shù):
LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();

如果是LocalDate或LocaTime需要轉(zhuǎn)換成LocalDateTime對(duì)象,再獲取毫秒數(shù)

  • LocalDate轉(zhuǎn)LocalDateTime
// atTime()可以提定時(shí)間(時(shí),分,秒),也可以傳LocalTime對(duì)象
LocalDate.now().atTime(0, 0, 0);
// 如果不需要指定當(dāng)天時(shí)間,使用該方法指定時(shí)分秒為都為0
LocalDate.now().atStartOfDay();
  • LocalTime轉(zhuǎn)LocalDateTime
LocalTime.now().atDate(LocalDate.now());

atDate()傳入LocalDate對(duì)象

  • LocalDateTime轉(zhuǎn)LocalDate和LocalTime
// 獲得日期
LocalDate date = LocalDateTime.now().toLocalDate();
// 獲得時(shí)間
LocalTime time = LocalDateTime.now().toLocalTime();
  • LocalDateTime與Date互轉(zhuǎn)
/**
 * LocalDateTime轉(zhuǎn)udate
 * @param datetime
 * @return
 */
public static Date localDateTimeToUDate(LocalDateTime datetime) {

    ZoneId zone = ZoneId.systemDefault();
    Instant instant = datetime.atZone(zone).toInstant();
    Date udate = Date.from(instant);
    return udate;
}

/**
 * udate轉(zhuǎn)LocalDateTime
 * @param date
 * @return
 */
public static LocalDateTime uDateToLocalDateTime(Date date) {

    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
    return localDateTime;
}

時(shí)區(qū)

如果系統(tǒng)有境外用戶,可能需要針對(duì)各地區(qū)不同時(shí)區(qū)處理。Java中使用的是格林時(shí)間(UTC),我們可以使用 ZoneOffset 設(shè)置偏移位置。

// ZoneOffset.of("+8") 等價(jià) ZoneOffset.ofHours(8)
LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();

格式化

在舊的Date類,使用 SimpleDateFormat 格式化日期,該類不是線程安全的。在新的日期類中使用 DateTimeFormatter

LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
log.info("-> {}", formatter.format(now));

DateTimeFormatter 定義好一些預(yù)格式化方式,以下是參照表:

還可以自定義格式:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化
String str = formatter.format(LocalDateTime.now());
// 轉(zhuǎn)成LocalDateTime
LocalDateTime datetime = LocalDateTime.parse("2021-01-01 08:00:00", formatter);

以下是Pattern表達(dá)式參照表:

新的時(shí)間工具雖然復(fù)雜了些,但也更加靈活。以后的開(kāi)發(fā)推薦使用新的工具包。

以上就是Java 日期時(shí)間工具包–java.time的使用的詳細(xì)內(nèi)容,更多關(guān)于java.time的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot使用slf4j日志并輸出到文件中的操作方法

    SpringBoot使用slf4j日志并輸出到文件中的操作方法

    這篇文章主要介紹了SpringBoot使用slf4j日志并輸出到文件中,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 如何用注解的方式實(shí)現(xiàn)Mybatis插入數(shù)據(jù)時(shí)返回自增的主鍵Id

    如何用注解的方式實(shí)現(xiàn)Mybatis插入數(shù)據(jù)時(shí)返回自增的主鍵Id

    這篇文章主要介紹了如何用注解的方式實(shí)現(xiàn)Mybatis插入數(shù)據(jù)時(shí)返回自增的主鍵Id,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 使用MAT進(jìn)行JVM內(nèi)存分析實(shí)例

    使用MAT進(jìn)行JVM內(nèi)存分析實(shí)例

    這篇文章主要介紹了使用MAT進(jìn)行JVM內(nèi)存分析實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • JAVASE系統(tǒng)實(shí)現(xiàn)抽卡功能

    JAVASE系統(tǒng)實(shí)現(xiàn)抽卡功能

    這篇文章主要為大家詳細(xì)介紹了JAVASE系統(tǒng)實(shí)現(xiàn)抽卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • JAVA對(duì)象clone方法代碼實(shí)例解析

    JAVA對(duì)象clone方法代碼實(shí)例解析

    這篇文章主要介紹了JAVA對(duì)象clone方法代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • java實(shí)現(xiàn)文件上傳功能

    java實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • java多態(tài)注意項(xiàng)小結(jié)

    java多態(tài)注意項(xiàng)小結(jié)

    面向?qū)ο蟮娜筇匦裕悍庋b、繼承、多態(tài)。從一定角度來(lái)看,封裝和繼承幾乎都是為多態(tài)而準(zhǔn)備的。今天通過(guò)本文給大家介紹java多態(tài)注意項(xiàng)總結(jié),感興趣的朋友一起看看吧
    2021-10-10
  • Spring?Security短信驗(yàn)證碼實(shí)現(xiàn)詳解

    Spring?Security短信驗(yàn)證碼實(shí)現(xiàn)詳解

    本文主要介紹了Spring?Security短信驗(yàn)證碼的實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • hibernate中的對(duì)象關(guān)系映射

    hibernate中的對(duì)象關(guān)系映射

    hibernate中的ORM映射文件通常以.hbm.xml作為后綴。使用這個(gè)映射文件不僅易讀,而且可以手工修改,也可以通過(guò)一些工具來(lái)生成映射文檔,下文給大家詳細(xì)的介紹hibernate中的對(duì)象關(guān)系映射,需要的朋友參考下吧
    2017-09-09
  • Java線程池獲取池中所有線程列表的方法總結(jié)

    Java線程池獲取池中所有線程列表的方法總結(jié)

    在Java中,獲取線程池中所有線程列表并不是一個(gè)直接支持的功能,因?yàn)榫€程池的設(shè)計(jì)通常是為了隱藏和管理底層的線程細(xì)節(jié),從而提供更高層次的抽象和并發(fā)控制能力,本文給大家介紹了Java線程池獲取池中所有線程列表的方法,需要的朋友可以參考下
    2024-10-10

最新評(píng)論

离岛区| 响水县| 原平市| 准格尔旗| 隆德县| 巫山县| 乌鲁木齐市| 瓮安县| 贵南县| 龙口市| 寻乌县| 新郑市| 中方县| 浦城县| 临桂县| 咸丰县| 沙洋县| 齐齐哈尔市| 宜都市| 霍林郭勒市| 财经| 贵定县| 阳江市| 松阳县| 明水县| 尼木县| 南宁市| 朝阳区| 巢湖市| 大安市| 安溪县| 井陉县| 龙江县| 光山县| 饶平县| 景宁| 湖北省| 镇康县| 吉木萨尔县| 咸宁市| 定安县|