chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用 Java 原生格式化Instant

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-09 14:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天我們將聊聊如何在Java中把一個(gè) Instant 格式化為一個(gè)字符串。我們將展示如何使用 Java 原生和第三方庫(kù)(如Joda-Time)來處理這個(gè)事情。

使用 Java 原生格式化Instant

在 Java 8 中有個(gè)名為 Instant 類。通常情況下,我們可以使用這個(gè)類來記錄我們應(yīng)用程序中的事件時(shí)間戳。

讓我們看看如何把它轉(zhuǎn)換成一個(gè)字符串對(duì)象。

使用 DateTimeFormatter 類

一般來說,我們將需要一個(gè)格式化器來格式化一個(gè)即時(shí)對(duì)象。Java 8引入了DateTimeFormatter類來統(tǒng)一格式化日期和時(shí)間。

DateTimeFormatter 提供了 format() 方法來完成這項(xiàng)工作。

簡(jiǎn)單地說,DateTimeFormatter 需要一個(gè)時(shí)區(qū)來格式化一個(gè) Instant 。沒有它,它將無法將Instant 轉(zhuǎn)換為人類可讀的日期/時(shí)間域。

例如,讓我們假設(shè)我們想用 dd.MM.yyyy 格式來顯示我們的即時(shí)信息實(shí)例。

public class FormatInstantUnitTest {
    
    private static final String PATTERN_FORMAT = "dd.MM.yyyy";

    @Test
    public void givenInstant_whenUsingDateTimeFormatter_thenFormat() {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(PATTERN_FORMAT)
        .withZone(ZoneId.systemDefault());

        Instant instant = Instant.parse("2022-04-21T15:35:24.00Z");
        String formattedInstant = formatter.format(instant);

        assertThat(formattedInstant).isEqualTo("21.04.2022");
    }
}

如上所示,我們可以使用withZone()方法來指定時(shí)區(qū)。

請(qǐng)記住,如果不能指定時(shí)區(qū)將導(dǎo)致 UnsupportedTemporalTypeException。

@Test(expected = UnsupportedTemporalTypeException.class)
public void givenInstant_whenNotSpecifyingTimeZone_thenThrowException() {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(PATTERN_FORMAT);

    Instant instant = Instant.now();
    formatter.format(instant);
}

使用toString()方法

另一個(gè)解決方案是使用toString()方法來獲得即時(shí)對(duì)象的字符串表示。

讓我們用一個(gè)測(cè)試案例舉例說明toString()方法的使用。

@Test
public void givenInstant_whenUsingToString_thenFormat() {
    Instant instant = Instant.ofEpochMilli(1641828224000L);
    String formattedInstant = instant.toString();

    assertThat(formattedInstant).isEqualTo("2022-01-10T15:23:44Z");
}

這種方法的局限性在于,我們不能使用自定義的、對(duì)人友好的格式來顯示即時(shí)信息。

Joda-Time庫(kù)

另外,我們也可以使用 Joda-Time API 來實(shí)現(xiàn)同樣的目標(biāo)。這個(gè)庫(kù)提供了一套隨時(shí)可用的類和接口,用于在Java中操作日期和時(shí)間。

在這些類中,我們發(fā)現(xiàn)DateTimeFormat類。顧名思義,這個(gè)類可以用來格式化或解析進(jìn)出字符串的日期/時(shí)間數(shù)據(jù)。

因此,讓我們來說明如何使用DateTimeFormatter來將一個(gè)瞬間轉(zhuǎn)換為一個(gè)字符串。

@Test
public void givenInstant_whenUsingJodaTime_thenFormat() {
    org.joda.time.Instant instant = new org.joda.time.Instant("2022-03-20T10:11:12");
        
    String formattedInstant = DateTimeFormat.forPattern(PATTERN_FORMAT)
        .print(instant);

    assertThat(formattedInstant).isEqualTo("20.03.2022");
}

我們可以看到,DateTimeFormatter提供forPattern()來指定格式化模式,print()來格式化即時(shí)對(duì)象。

總結(jié)

在這篇文章中,我們了解了如何在Java中把一個(gè) Instant 格式化為一個(gè)字符串。

在這一過程中,我們了解了一些使用Java 原生方法來實(shí)現(xiàn)這一目標(biāo)的方法。然后,我們解釋了如何使用Joda-Time庫(kù)來完成同樣的事情。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2992

    瀏覽量

    114789
  • 格式化
    +關(guān)注

    關(guān)注

    2

    文章

    39

    瀏覽量

    9479
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3339

    瀏覽量

    59701
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    MDK使用AStyle進(jìn)行代碼自動(dòng)格式化

    MDK使用AStyle進(jìn)行代碼自動(dòng)格式化
    的頭像 發(fā)表于 09-19 14:22 ?5434次閱讀
    MDK使用AStyle進(jìn)行代碼自動(dòng)<b class='flag-5'>格式化</b>

    如何對(duì)MicroSD卡格式化

    使用ESP32-CAM每隔幾秒拍一張照片,并存儲(chǔ)到SD卡中。ESP32-CAM成本約為40元,用過的MicroSD卡2.實(shí)驗(yàn)方法格式化MicroSD卡對(duì)MicroSD卡格式化,注意選擇FAT32格式
    發(fā)表于 01-21 13:58

    格式化硬盤

    格式化硬盤 軟盤只需要一次格式化,硬盤卻需要兩級(jí),即低級(jí)格式化和高級(jí)格式化?! ∮脖P的低級(jí)格式化在每個(gè)磁片上劃分
    發(fā)表于 12-25 15:40 ?1192次閱讀

    筆記本硬盤維護(hù)之格式化

    筆記本硬盤維護(hù)之格式化篇   格式化硬盤(并非低格)會(huì)影響硬盤壽命嗎?用Windows對(duì)硬盤進(jìn)行格式化與對(duì)軟盤進(jìn)行格式化原理一樣
    發(fā)表于 01-20 10:32 ?438次閱讀

    筆記本硬盤格式化幾點(diǎn)須知

    筆記本硬盤格式化幾點(diǎn)須知  格式化硬盤(并非低格)會(huì)影響硬盤壽命嗎?用Windows對(duì)硬盤進(jìn)行格式化與對(duì)軟盤進(jìn)行格式化原理一樣嗎?
    發(fā)表于 01-23 14:15 ?779次閱讀

    如何格式化硬盤

    如何格式化硬盤    這是廣大電腦初學(xué)者經(jīng)常詢問的問題,因?yàn)?b class='flag-5'>格式化硬盤是安裝裝系統(tǒng)的前提,所以這就成為了需要首先解決的問題,本文將針這個(gè)
    發(fā)表于 02-24 11:25 ?649次閱讀

    硬盤無法格式化如何處理

    硬盤無法格式化如何處理   筆者有一塊20GB的長(zhǎng)城硬盤,出現(xiàn)了故障,無法正常使用,就連格式化都不能順利通過,閑置一旁已多日
    發(fā)表于 02-24 11:39 ?8426次閱讀

    如何格式化c盤

    如何格式化c盤 咨詢這個(gè)問題的朋友,相信一定是電腦的初學(xué)者,而且跳過了DOS系統(tǒng)的年代。單單就這個(gè)問題的回答,傳統(tǒng)的方法是
    發(fā)表于 03-01 10:22 ?2w次閱讀

    格式化對(duì)硬盤有傷害嗎_硬盤格式化后數(shù)據(jù)還能恢復(fù)嗎

    普通的格式化硬盤是不會(huì)影響硬盤壽命的。硬盤格式化后數(shù)據(jù)還能恢復(fù)嗎?下面就來看看使用強(qiáng)力數(shù)據(jù)是如何將格式化后的數(shù)據(jù)給恢復(fù)的吧。
    發(fā)表于 12-14 16:09 ?1.8w次閱讀

    格式化是什么

    格式化(format)是指對(duì)磁盤或磁盤中的分區(qū)(partition)進(jìn)行初始的一種操作,這種操作通常會(huì)導(dǎo)致現(xiàn)有的磁盤或分區(qū)中所有的文件被清除。格式化通常分為低級(jí)格式化和高級(jí)
    的頭像 發(fā)表于 01-09 15:20 ?8.8w次閱讀

    關(guān)于MDK-ARM代碼格式化插件AStyle

    MDK-ARM代碼格式化插件AStyle
    的頭像 發(fā)表于 03-07 16:34 ?3050次閱讀

    D盤無法格式化的解決方法分享

    電腦的使用windows7系統(tǒng)過程中,發(fā)現(xiàn)電腦磁盤的有一些不需要的文件想直接格式化,由于自己的電腦D盤太亂,想要格式化D盤。
    的頭像 發(fā)表于 08-10 16:25 ?6025次閱讀
    D盤無法<b class='flag-5'>格式化</b>的解決方法分享

    printf格式化輸出符號(hào)參數(shù)詳解

    printf格式化輸出符號(hào)參數(shù)詳解
    發(fā)表于 07-06 09:12 ?21次下載

    python字符串格式化

    python字符串格式化 格式化輸出,主要有三種方式 使用 % 進(jìn)行格式化 使用 format 函數(shù)進(jìn)行格式化 使用 f-string 進(jìn)行格式化
    的頭像 發(fā)表于 02-21 16:28 ?2008次閱讀
    python字符串<b class='flag-5'>格式化</b>

    Java中如何解析、格式化、生成SQL語(yǔ)句?

    昨天在群里看到有小伙伴問,Java里如何解析SQL語(yǔ)句然后格式化SQL,是否有現(xiàn)成類庫(kù)可以使用?
    的頭像 發(fā)表于 04-10 11:59 ?1857次閱讀