」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼在 Java 中解析日期字串會拋出“非法模式字元‘T’”?

為什麼在 Java 中解析日期字串會拋出“非法模式字元‘T’”?

發佈於2024-12-23
瀏覽:400

Why Does Parsing a Date String in Java Throw

將日期字串解析為java.util.Date 時出現非法模式字元'T'

將日期字串解析為java .util.Date。日期對象需要遵循特定規則的模式。一種常見模式是“yyyy-MM-ddThh:mm:ssZ”,它表示 ISO 8601 格式的日期。

問題:

問題:使用指定模式時,例外情況是拋出訊息「java.lang.IllegalArgumentException:非法模式字元'T'."

原因:模式中的'T' 表示日期與時間部分之間的分隔符號。然而,在Java的SimpleDateFormat中,'T'字元需要在兩邊加上單引號進行轉義才能正確識別。

String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";

要使用原始模式解決問題,請轉義“T”字符,如下所示:String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";

import java.time.Instant;
import java.time.format.DateTimeFormatter;

String dateString = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
Instant d = Instant.parse(dateString);
System.out.println(d.getYear());

或者,您可以使用由Q2597083 class:
或者,您可以使用由Q2597083 class:

import java.time.Instant;
import java.time.format.DateTimeFormatter;

String dateString = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
Instant d = Instant.parse(dateString);
System.out.println(d.getYear());
FORMAT;及更高版本:

對於 Java 8 以上版本,建議使用 DateTimeFormatter 類別而不是 SimpleDateFormat 和 Instant 而不是 Date。這是一個例子:

Why Does Parsing a Date String in Java Throw import java.time.Instant; 導入java.time.format.DateTimeFormatter; 字串日期字串 = "2010-10-02T12:23:23Z"; DateTimeFormatter 格式化程式 = DateTimeFormatter.ISO_DATE_TIME; 即時 d = Instant.parse(dateString); System.out.println(d.getYear());

使用這些解決方案,您可以成功解析ISO 8601 格式的日期字串,而不會遇到“非法模式字元'T'”異常。

最新教學 更多>
  • 如何使用node-mysql在單個查詢中執行多個SQL語句?
    如何使用node-mysql在單個查詢中執行多個SQL語句?
    Multi-Statement Query Support in Node-MySQLIn Node.js, the question arises when executing multiple SQL statements in a single query using the node-mys...
    程式設計 發佈於2025-04-29
  • MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    在兩個條件下插入或更新或更新 solution:的答案在於mysql的插入中...在重複鍵更新語法上。如果不存在匹配行或更新現有行,則此功能強大的功能可以通過插入新行來進行有效的數據操作。如果違反了唯一的密鑰約束。 實現所需的行為,該表必須具有唯一的鍵定義(在這種情況下為'名稱'...
    程式設計 發佈於2025-04-29
  • 您如何在Laravel Blade模板中定義變量?
    您如何在Laravel Blade模板中定義變量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配變量對於存儲以後使用的數據至關重要。在使用“ {{}}”分配變量的同時,它可能並不總是最優雅的解決方案。 幸運的是,Blade通過@php Directive提供了更優雅的方法: $ old_section =...
    程式設計 發佈於2025-04-29
  • Entity Framework 5更新記錄的最佳方法
    Entity Framework 5更新記錄的最佳方法
    Entity Framework 5記錄更新的最佳實踐 在Entity Framework 5中更新記錄,開發者常常面臨多種方法的選擇,每種方法都有其優缺點。本文將探討三種常用方法及其局限性,並最終給出最佳方案。 方法一:加載原始記錄並逐個更新屬性 此方法需要先加載原始記錄,然後手動更新每個修改...
    程式設計 發佈於2025-04-29
  • C#靜態變量如何工作及為何不能在方法內聲明
    C#靜態變量如何工作及為何不能在方法內聲明
    C#中的靜態變量 許多開發人員難以理解C#中靜態變量的功能。本文旨在闡明它們的用途和用法,同時解釋為什麼不能在方法內部聲明靜態變量。 什麼是靜態變量? 靜態變量是類級別的變量,在該類的所有實例之間共享。其值在從該類創建的所有對象之間共享。 何時使用靜態變量? 在需要跨類的多個實例維護值的情...
    程式設計 發佈於2025-04-29
  • 對象擬合:IE和Edge中的封面失敗,如何修復?
    對象擬合:IE和Edge中的封面失敗,如何修復?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    程式設計 發佈於2025-04-29
  • 如何在JavaScript對像中動態設置鍵?
    如何在JavaScript對像中動態設置鍵?
    在嘗試為JavaScript對象創建動態鍵時,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正確的方法採用方括號: jsobj ['key''i] ='example'1; 在JavaScript中,數組是一...
    程式設計 發佈於2025-04-29
  • IACA助力優化Intel CPU代碼性能分析
    IACA助力優化Intel CPU代碼性能分析
    被稱為英特爾體系結構代碼分析儀,IACA是用於評估針對Intel CPU的代碼調度的高級工具。它以三種模式運行: 吞吐量模式: iaca iaca衡量最大的吞吐量,假設它是嵌套循環的主體。 IACA traces the sequence of instructions as they prog...
    程式設計 發佈於2025-04-29
  • 為什麼使用Firefox後退按鈕時JavaScript執行停止?
    為什麼使用Firefox後退按鈕時JavaScript執行停止?
    導航歷史記錄問題:JavaScript使用Firefox Back Back 此行為是由瀏覽器緩存JavaScript資源引起的。要解決此問題並確保在後續頁面訪問中執行腳本,Firefox用戶應設置一個空功能。 警報'); }; alert('inline Alert')...
    程式設計 發佈於2025-04-29
  • 如何使用PHP將斑點(圖像)正確插入MySQL?
    如何使用PHP將斑點(圖像)正確插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call fil...
    程式設計 發佈於2025-04-29
  • Java GUI計算器中如何使用getSource()獲取數字按鈕值?
    Java GUI計算器中如何使用getSource()獲取數字按鈕值?
    如何使用getSource() 要檢索每個按鈕的值,請按照以下步驟操作: 當前的code bud y you budsors。 ETC。 )。為數字按鈕(例如NumactionListener)創建一個單獨的操作偵聽器。 為號碼按鈕註冊操作偵聽器。 將NumactionListener添加到所有...
    程式設計 發佈於2025-04-29
  • Java字符串非空且非null的有效檢查方法
    Java字符串非空且非null的有效檢查方法
    檢查字符串是否不是null而不是空的 if(str!= null && str.isementy())二手: if(str!= null && str.length()== 0) option 3:trim()。 isement(Isement() trim whitespace whites...
    程式設計 發佈於2025-04-29
  • PHP陣列鍵值異常:了解07和08的好奇情況
    PHP陣列鍵值異常:了解07和08的好奇情況
    PHP數組鍵值問題,使用07&08 在給定數月的數組中,鍵值07和08呈現令人困惑的行為時,就會出現一個不尋常的問題。運行print_r($月份)返回意外結果:鍵“ 07”丟失,而鍵“ 08”分配給了9月的值。 此問題源於PHP對領先零的解釋。當一個數字帶有0(例如07或08)的前綴時,PHP...
    程式設計 發佈於2025-04-29
  • Go語言垃圾回收如何處理切片內存?
    Go語言垃圾回收如何處理切片內存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片時,了解垃圾收集行為至關重要,以避免潛在的內存洩...
    程式設計 發佈於2025-04-29
  • 使用JavaScript將SVG轉換為JPEG、PNG等格式的技巧
    使用JavaScript將SVG轉換為JPEG、PNG等格式的技巧
    將SVG轉換為JPEG,PNG和瀏覽器中的其他格式 從SVG圖形中創建高質量的圖像可能是一個挑戰,尤其是您需要以各種格式導出它們。 JavaScript為此任務提供了一種多功能解決方案,使您無需外部工具或插件即可將SVG圖像無縫地轉換為位映射。 使用canvg庫進行渲染:Capture Imag...
    程式設計 發佈於2025-04-29

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3