Java字符串轉(zhuǎn)時(shí)間幾種常見的方法
前言
在Java中,將字符串轉(zhuǎn)換為時(shí)間對(duì)象有多種方式,主要取決于你使用的Java版本和需要的功能。以下是幾種常見的方法:
1. 使用 SimpleDateFormat (Java 8之前)
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
public static void main(String[] args) throws Exception {
String dateString = "2023-05-15 14:30:00";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = format.parse(dateString);
System.out.println(date);
}
}2. 使用 DateTimeFormatter 和 LocalDateTime (Java 8+)
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class StringToLocalDateTime {
public static void main(String[] args) {
String dateString = "2023-05-15 14:30:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
System.out.println(dateTime);
}
}3. 其他時(shí)間類型轉(zhuǎn)換
a. 轉(zhuǎn)換為 LocalDate (僅日期)
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
String dateString = "2023-05-15";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(dateString, formatter);b. 轉(zhuǎn)換為 LocalTime (僅時(shí)間)
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
String timeString = "14:30:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time = LocalTime.parse(timeString, formatter);4. 處理不同格式
String dateString1 = "15/05/2023";
String dateString2 = "May 15, 2023";
String dateString3 = "20230515";
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd/MM/yyyy");
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("MMM dd, yyyy");
DateTimeFormatter formatter3 = DateTimeFormatter.BASIC_ISO_DATE;
LocalDate date1 = LocalDate.parse(dateString1, formatter1);
LocalDate date2 = LocalDate.parse(dateString2, formatter2);
LocalDate date3 = LocalDate.parse(dateString3, formatter3);5. 處理時(shí)區(qū) (ZonedDateTime)
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
String dateString = "2023-05-15T14:30:00+08:00";
ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateString);
System.out.println(zonedDateTime);
// 或者指定格式
String customDateString = "2023-05-15 14:30:00 Asia/Shanghai";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss VV");
ZonedDateTime zdt = ZonedDateTime.parse(customDateString, formatter);注意事項(xiàng)
異常處理:記得處理
ParseException(SimpleDateFormat) 或DateTimeParseException(DateTimeFormatter)線程安全:SimpleDateFormat 不是線程安全的,而 DateTimeFormatter 是線程安全的
Java 8+ 推薦:如果使用 Java 8 或更高版本,推薦使用新的 java.time API (LocalDateTime 等)
模式匹配:確保格式模式與輸入字符串完全匹配
總結(jié)
到此這篇關(guān)于Java字符串轉(zhuǎn)時(shí)間幾種常見方法的文章就介紹到這了,更多相關(guān)Java字符串轉(zhuǎn)時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Java實(shí)現(xiàn)三種等級(jí)的掃雷游戲(完整版)
掃雷是一款大眾類的益智小游戲,根據(jù)點(diǎn)擊格子出現(xiàn)的數(shù)字找出所有非雷格子,同時(shí)避免踩雷,踩到一個(gè)雷即全盤皆輸,下面這篇文章主要給大家介紹了關(guān)于使用Java實(shí)現(xiàn)三種等級(jí)的掃雷游戲的相關(guān)資料,需要的朋友可以參考下2023-01-01
java實(shí)現(xiàn)請(qǐng)求緩沖合并的示例代碼
我們對(duì)外提供了一個(gè)rest接口給第三方業(yè)務(wù)進(jìn)行調(diào)用,但是由于第三方框架限制,導(dǎo)致會(huì)發(fā)送大量相似無效請(qǐng)求,這篇文章主要介紹了java實(shí)現(xiàn)請(qǐng)求緩沖合并,需要的朋友可以參考下2024-04-04
SpringBoot進(jìn)行多表查詢功能的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot進(jìn)行多表查詢功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
如何實(shí)現(xiàn)Java監(jiān)聽器詳解
今天帶大家了解Java監(jiān)聽器是如何實(shí)現(xiàn)的及實(shí)現(xiàn)原理是什么,文中有非常詳細(xì)的說明,對(duì)正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
Java如何判斷一個(gè)IP是否在給定的網(wǎng)段內(nèi)
這篇文章主要介紹了Java如何判斷一個(gè)IP是否在給定的網(wǎng)段內(nèi)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
解決MultipartFile.transferTo(dest) 報(bào)FileNotFoundExcep的問題
這篇文章主要介紹了解決MultipartFile.transferTo(dest) 報(bào)FileNotFoundExcep的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07

