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

Java日期格式化實現(xiàn)過程

 更新時間:2025年11月06日 16:56:19   作者:@zcc@  
本文介紹了在Java中處理日期格式y(tǒng)yyyMMddHHmmss的方法,包括使用java.time包(Java8+)和SimpleDateFormat(Java7及以下),詳細說明了格式化和解析時間的示例代碼,并強調(diào)了線程安全和異常處理的重要性,還討論了常見錯誤及其解決方法,以及如何生成唯一標(biāo)識符

在 Java 中處理日期格式 yyyyMMddHHmmss(即年-月-日-時-分-秒,無分隔符),可以通過 java.time 包(Java 8+)或 SimpleDateFormat(Java 7 及以下)實現(xiàn)。

以下是詳細說明和示例代碼:

1. Java 8+:使用java.time包

推薦使用 Java 8 的 java.time 包,它更現(xiàn)代、線程安全且功能更強大。

1.1 格式化當(dāng)前時間為yyyyMMddHHmmss

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateFormatter {
    public static void main(String[] args) {
        // 當(dāng)前時間
        LocalDateTime now = LocalDateTime.now();
        // 定義格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        // 格式化為字符串
        String formattedTime = now.format(formatter);
        System.out.println("當(dāng)前時間(yyyyMMddHHmmss): " + formattedTime);
    }
}

輸出示例

當(dāng)前時間(yyyyMMddHHmmss): 20250612154603

1.2 將yyyyMMddHHmmss字符串解析為LocalDateTime

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateFormatter {
    public static void main(String[] args) {
        // 輸入字符串
        String input = "20250612154603";
        // 定義解析格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        // 解析為 LocalDateTime
        LocalDateTime dateTime = LocalDateTime.parse(input, formatter);
        System.out.println("解析后的日期時間: " + dateTime);
    }
}

輸出示例

解析后的日期時間: 2025-06-12T15:46:03

2. Java 7 及以下:使用SimpleDateFormat

對于舊版 Java,可以使用 SimpleDateFormat,但需注意線程安全問題。

2.1 格式化當(dāng)前時間為yyyyMMddHHmmss

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatter {
    public static void main(String[] args) {
        // 當(dāng)前時間
        Date now = new Date();
        // 定義格式
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
        // 格式化為字符串
        String formattedTime = formatter.format(now);
        System.out.println("當(dāng)前時間(yyyyMMddHHmmss): " + formattedTime);
    }
}

輸出示例

當(dāng)前時間(yyyyMMddHHmmss): 20250612154603

2.2 將yyyyMMddHHmmss字符串解析為Date

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatter {
    public static void main(String[] args) {
        try {
            // 輸入字符串
            String input = "20250612154603";
            // 定義解析格式
            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
            // 解析為 Date
            Date date = formatter.parse(input);
            System.out.println("解析后的日期時間: " + date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

輸出示例

解析后的日期時間: Wed Jun 12 15:46:03 CST 2025

3. 注意事項

符號含義示例
yyyy四位數(shù)的年份2025
YYYYISO 周歷年 2024(可能跨年)謹慎使用,僅用于周相關(guān)場景
MM兩位數(shù)的月份(01-12)06
dd兩位數(shù)的日期(01-31)12
HH24小時制的小時(00-23)15
hh12小時制的小時(01-12)15
mm分鐘(00-59)49
ss秒(00-59)33
SSS毫秒(000-999)123

線程安全:

  • SimpleDateFormat 不是線程安全的,在多線程環(huán)境中需每次創(chuàng)建新實例或使用 synchronized。
  • DateTimeFormatter 是線程安全的,推薦優(yōu)先使用。

異常處理

  • 使用 SimpleDateFormat.parse() 時需捕獲 ParseException。

4. 常見錯誤及解決方法

錯誤 1:格式模式與輸入字符串不匹配

  • 原因:輸入字符串的格式與定義的 DateTimeFormatterSimpleDateFormat 不一致。
  • 解決:檢查格式模式是否正確,例如 yyyyMMddHHmmss 不能用于 2025-06-12 15:46:03。

錯誤 2:解析非法日期(如 20250230)

  • 原因:輸入字符串包含非法日期(如 2 月 30 日)。
  • 解決:捕獲異常并處理非法輸入。

5. 擴展:生成唯一標(biāo)識符

yyyyMMddHHmmss 常用于生成唯一標(biāo)識符(如訂單號、文件名)。

可以結(jié)合序列號或 UUID:

// 示例:生成訂單號
String orderNumber = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + "-001";
System.out.println("訂單號: " + orderNumber);

輸出示例

訂單號: 20250612154603-001

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文帶你回顧Java中的垃圾回收機制

    一文帶你回顧Java中的垃圾回收機制

    這篇文章主要給大家介紹了關(guān)于Java中垃圾回收機制的相關(guān)資料, Java 程序,內(nèi)存是托管于 JVM 的,即對象的創(chuàng)建和內(nèi)存的回收都是由 JVM 自行完成的,開發(fā)人員是無權(quán)干涉的,只能盡量去優(yōu)化,需要的朋友可以參考下
    2021-08-08
  • java中如何對Map的key順序排序

    java中如何對Map的key順序排序

    大家都知道Map排序的方式有很多種,下面這篇文章主要給大家介紹了關(guān)于java中如何對Map的key順序排序的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • 詳解SpringBoot下文件上傳與下載的實現(xiàn)

    詳解SpringBoot下文件上傳與下載的實現(xiàn)

    這篇文章主要介紹了SpringBoot下文件上傳與下載的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • SpringSecurity實現(xiàn)動態(tài)url攔截(基于rbac模型)

    SpringSecurity實現(xiàn)動態(tài)url攔截(基于rbac模型)

    本文主要介紹了SpringSecurity動態(tài)url攔截,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • SpringBoot項目自定義靜態(tài)資源映射規(guī)則的實現(xiàn)代碼

    SpringBoot項目自定義靜態(tài)資源映射規(guī)則的實現(xiàn)代碼

    在開發(fā)Web應(yīng)用時,我們經(jīng)常需要處理文件上傳與訪問,?傳統(tǒng)做法可能是使用Nginx反向代理,但對于小型項目或快速開發(fā)場景,我們可以直接用?Spring MVC的靜態(tài)資源映射? 功能,本文將基于WebMvcConfigurer手寫配置,實現(xiàn) ?本地文件目錄映射為Web URL,需要的朋友可以參考下
    2025-08-08
  • java調(diào)用shell腳本及注意事項說明

    java調(diào)用shell腳本及注意事項說明

    這篇文章主要介紹了java調(diào)用shell腳本及注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 淺談java指令重排序的問題

    淺談java指令重排序的問題

    下面小編就為大家?guī)硪黄獪\談java指令重排序的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java實現(xiàn)上傳文件圖片到指定服務(wù)器目錄

    Java實現(xiàn)上傳文件圖片到指定服務(wù)器目錄

    本文通過實例代碼給大家介紹了java上傳文件圖片到指定服務(wù)器目錄的相關(guān)知識,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • Java字符串格式化工具String.format()完整用法指南

    Java字符串格式化工具String.format()完整用法指南

    String.format是Java中的一個靜態(tài)方法,用于創(chuàng)建格式化的字符串,這篇文章主要介紹了Java字符串格式化工具String.format()完整用法指南的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2026-01-01
  • SpringBoot中多個實現(xiàn)的接口正確注入的六種方式

    SpringBoot中多個實現(xiàn)的接口正確注入的六種方式

    在SpringBoot中,正確注入多個接口實現(xiàn)包括使用@Autowired和@Qualifier、@Resource注解、構(gòu)造方法注入、@Primary注解、Java配置類以及將所有實現(xiàn)注入到List或Map中,感興趣的可以了解一下
    2024-10-10

最新評論

特克斯县| 思南县| 广河县| 洛南县| 新乐市| 苗栗县| 建昌县| 卓资县| 宝坻区| 阳城县| 大庆市| 永清县| 西和县| 蒲江县| 老河口市| 保靖县| 罗田县| 黎川县| 三门峡市| 铜鼓县| 日照市| 定襄县| 通海县| 遂昌县| 鄂托克旗| 玉溪市| 庐江县| 普陀区| 喀什市| 江津市| 四平市| 商南县| 宝山区| 岳阳县| 神池县| 淄博市| 左贡县| SHOW| 永州市| 唐山市| 翁源县|