欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

說說字符串轉 OffSetDateTime 你真的會用嗎

 更新時間:2021年08月04日 14:37:09   作者:PostTruth  
這篇文章主要介紹了字符串轉 OffSetDateTime 你真的會用嗎?具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

字符串轉 OffSetDateTime 你真的會用

要創(chuàng)建OffsetDateTime ,需要日期 (日,月和年), 時間 (小時,分鐘,秒和納秒)和偏移量 (與UTC的差異)。

如果輸入只有日期,將會報錯.

如果只有 日期 小時,分鐘和秒,也會報錯.

因此必須構建其余的,或者假設它們的默認值。

下面是我寫好的工具類,拿去用吧:

public class OffSetDateTimeConverter {
    private static DateTimeFormatter DATE_FORMAT = new DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd")
            .parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
            .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
            .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
            .parseDefaulting(ChronoField.MILLI_OF_SECOND, 0)
            .parseDefaulting(ChronoField.OFFSET_SECONDS, 0)
            .toFormatter();
    private static DateTimeFormatter DATE_TIME_FORMAT = new DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd HH:mm:ss")
            .parseDefaulting(ChronoField.MILLI_OF_SECOND, 0)
            .parseDefaulting(ChronoField.OFFSET_SECONDS, 0)
            .toFormatter();
    public static OffsetDateTime convertDate(String date) {
        if (StringUtils.isBlank(date)) {
            return null;
        }
        return OffsetDateTime.parse(date, DATE_FORMAT);
    }
    public static OffsetDateTime convertDateTime(String dateTime) {
        if (StringUtils.isBlank(dateTime)) {
            return null;
        }
        return OffsetDateTime.parse(dateTime, DATE_TIME_FORMAT);
    }
}

上面的工具類保存到數(shù)據庫會報錯, 用下面這個吧

public class OffSetDateTimeConverter {
    /**
     * yyyy-MM-dd
     *
     * @param date
     * @return
     */
    public static OffsetDateTime convertDate(String date) {
        if (StringUtils.isBlank(date)) {
            return null;
        }
        return LocalDate.parse(date, ISO_LOCAL_DATE).atTime(LocalTime.MIN).atZone(systemDefault()).toOffsetDateTime();
    }
    /**
     * "yyyy-MM-dd HH:mm:ss"
     *
     * @param dateTime
     * @return
     */
    public static OffsetDateTime convertDateTime(String dateTime) {
        if (StringUtils.isBlank(dateTime)) {
            return null;
        }
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.parse(dateTime, dtf);
        return OffsetDateTime.of(localDateTime, ZoneOffset.UTC);
    }
}

又來更新了,上面方式會有時區(qū)問題,用下面的方式解決

public class OffSetDateTimeConverter {
    
    /**
     * yyyy-MM-dd
     *
     * @param date
     * @return
     */
    public static OffsetDateTime convertDate(String date) {
        if (StringUtils.isBlank(date)) {
            return null;
        }
        LocalDateTime localDateTime = LocalDateTime.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        return OffsetDateTime.of(localDateTime, ZoneId.systemDefault().getRules().getOffset(localDateTime));
    }
    /**
     * "yyyy-MM-dd HH:mm:ss"
     *
     * @param dateTime
     * @return
     */
    public static OffsetDateTime convertDateTime(String dateTime) {
        if (StringUtils.isBlank(dateTime)) {
            return null;
        }
        LocalDateTime localDateTime = LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        return OffsetDateTime.of(localDateTime, ZoneId.systemDefault().getRules().getOffset(localDateTime));
    }
}

OffsetDateTime時間格式轉換

可能開發(fā)中又碰到OffsetDateTime時間格式,不知道如何轉換

最簡單一招解決:

OffsetDateTime creationTimestamp;
creationTimestamp.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))

即可輕松轉換為String字符串類型。

OK!問題解決!以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • JDK8中新增的Optional工具類基本使用

    JDK8中新增的Optional工具類基本使用

    Optional不是對null關鍵字的一種替代,而是對于null判定提供了一種更加優(yōu)雅的實現(xiàn),接下來通過本文給大家分享JDK8中新增的Optional工具類基本使用,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • 解決IDEA2021版compiler.automake.allow.when.app.running不存在的問題

    解決IDEA2021版compiler.automake.allow.when.app.running不存在的問題

    很多文章介紹IntelliJ IDEA開啟熱部署功能都會寫到在IntelliJ IDEA中的注冊表中開啟compiler.automake.allow.when.app.running選項,此選項在IntelliJ IDEA 2021.2之后的版本遷移到高級設置中,下面看下設置方法
    2021-09-09
  • Spring在多線程下@Resource注入為null的問題

    Spring在多線程下@Resource注入為null的問題

    這篇文章主要介紹了Spring在多線程下@Resource注入為null的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • SpringBoot 配置文件加密的步驟

    SpringBoot 配置文件加密的步驟

    這篇文章主要介紹了SpringBoot 配置文件加密的步驟,幫助大家更好的理解和學習使用springboot框架,感興趣的朋友可以了解下
    2021-03-03
  • AndroidHttpClient使用Cookie應用分析

    AndroidHttpClient使用Cookie應用分析

    今天想把一個用使用了HttpClient的自動簽到小程序移植到Android上,還好Android的SDK自帶了HttpClient的包.當然也可以繼續(xù)使用DefaultHttpClient,但用為Android定制的AndroidHttpClient自然更好
    2012-11-11
  • springboot+vue實現(xiàn)驗證碼功能

    springboot+vue實現(xiàn)驗證碼功能

    這篇文章主要為大家詳細介紹了springboot+vue實現(xiàn)驗證碼功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java的云打印Lodop

    Java的云打印Lodop

    這篇文章主要介紹了Java的云打印Lodop 的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • java 同步、異步、阻塞和非阻塞分析

    java 同步、異步、阻塞和非阻塞分析

    這篇文章主要介紹了java 同步、異步、阻塞和非阻塞分析的相關資料,需要的朋友可以參考下
    2017-02-02
  • J2SE 1.5版本的新特性一覽

    J2SE 1.5版本的新特性一覽

    J2SE 1.5版本的新特性一覽...
    2006-12-12
  • SpringBoot使用Redis單機版過期鍵監(jiān)聽事件的實現(xiàn)示例

    SpringBoot使用Redis單機版過期鍵監(jiān)聽事件的實現(xiàn)示例

    在緩存的使用場景中經常需要使用到過期事件,本文主要介紹了SpringBoot使用Redis單機版過期鍵監(jiān)聽事件的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07

最新評論