JAVA時(shí)間類型轉(zhuǎn)換處理方式
LocalDateDate
Java時(shí)間類型詳解:LocalDate與Date互轉(zhuǎn)及字符串格式化
在Java中,時(shí)間處理是一個(gè)常見的需求。隨著Java 8引入了新的日期時(shí)間API(java.time包),開發(fā)者可以更方便地處理日期和時(shí)間。本文將詳細(xì)介紹 LocalDate 與 Date 類型的互轉(zhuǎn)、字符串格式化以及其他常見時(shí)間類型的轉(zhuǎn)換。
一、LocalDate與Date類型互轉(zhuǎn)
1.Date轉(zhuǎn)LocalDate
Date 是Java早期的日期時(shí)間類,而 LocalDate 是Java 8引入的日期類。我們可以通過以下方式將 Date 轉(zhuǎn)換為 LocalDate:
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
public class DateToLocalDate {
public static void main(String[] args) {
// 獲取當(dāng)前Date對(duì)象
Date nowDate = new Date();
// 將Date轉(zhuǎn)換為LocalDate
LocalDate localDate = nowDate.toInstant() // 將Date轉(zhuǎn)換為Instant
.atZone(ZoneId.systemDefault()) // 指定時(shí)區(qū)
.toLocalDate(); // 轉(zhuǎn)換為LocalDate
System.out.println("Date: " + nowDate);
System.out.println("LocalDate: " + localDate);
}
}輸出示例:
Date: Mon Oct 09 12:34:56 CST 2023
LocalDate: 2023-10-09
2.LocalDate轉(zhuǎn)Date
將 LocalDate 轉(zhuǎn)換為 Date 需要借助 ZonedDateTime 或 Instant:
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
public class LocalDateToDate {
public static void main(String[] args) {
// 獲取當(dāng)前LocalDate對(duì)象
LocalDate localDate = LocalDate.now();
// 將LocalDate轉(zhuǎn)換為Date
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
System.out.println("LocalDate: " + localDate);
System.out.println("Date: " + date);
}
}輸出示例:
LocalDate: 2023-10-09
Date: Mon Oct 09 00:00:00 CST 2023
二、字符串格式化與解析
1.LocalDate與字符串互轉(zhuǎn)
(1)LocalDate轉(zhuǎn)字符串
使用 DateTimeFormatter 可以將 LocalDate 格式化為字符串:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class LocalDateToString {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
// 定義格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 格式化LocalDate為字符串
String dateString = localDate.format(formatter);
System.out.println("LocalDate: " + localDate);
System.out.println("Formatted String: " + dateString);
}
}輸出示例:
LocalDate: 2023-10-09
Formatted String: 2023-10-09
(2)字符串轉(zhuǎn)LocalDate
將字符串解析為 LocalDate:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class StringToLocalDate {
public static void main(String[] args) {
String dateString = "2023-10-09";
// 定義格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 解析字符串為LocalDate
LocalDate localDate = LocalDate.parse(dateString, formatter);
System.out.println("String: " + dateString);
System.out.println("LocalDate: " + localDate);
}
}輸出示例:
String: 2023-10-09
LocalDate: 2023-10-09
2.Date與字符串互轉(zhuǎn)
(1)Date轉(zhuǎn)字符串
使用 SimpleDateFormat 可以將 Date 格式化為字符串:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateToString {
public static void main(String[] args) {
Date nowDate = new Date();
// 定義格式化器
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 格式化Date為字符串
String dateString = formatter.format(nowDate);
System.out.println("Date: " + nowDate);
System.out.println("Formatted String: " + dateString);
}
}輸出示例:
Date: Mon Oct 09 12:34:56 CST 2023
Formatted String: 2023-10-09 12:34:56
(2)字符串轉(zhuǎn)Date
將字符串解析為 Date:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
public static void main(String[] args) throws ParseException {
String dateString = "2023-10-09 12:34:56";
// 定義格式化器
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 解析字符串為Date
Date date = formatter.parse(dateString);
System.out.println("String: " + dateString);
System.out.println("Date: " + date);
}
}輸出示例:
String: 2023-10-09 12:34:56
Date: Mon Oct 09 12:34:56 CST 2023
三、其他常見時(shí)間類型轉(zhuǎn)換
1.LocalDateTime與Date互轉(zhuǎn)
(1)Date轉(zhuǎn)LocalDateTime
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
public class DateToLocalDateTime {
public static void main(String[] args) {
Date nowDate = new Date();
// 將Date轉(zhuǎn)換為LocalDateTime
LocalDateTime localDateTime = nowDate.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime();
System.out.println("Date: " + nowDate);
System.out.println("LocalDateTime: " + localDateTime);
}
}(2)LocalDateTime轉(zhuǎn)Date
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
public class LocalDateTimeToDate {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
// 將LocalDateTime轉(zhuǎn)換為Date
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
System.out.println("LocalDateTime: " + localDateTime);
System.out.println("Date: " + date);
}
}2.LocalTime與Date互轉(zhuǎn)
(1)Date轉(zhuǎn)LocalTime
import java.time.LocalTime;
import java.time.ZoneId;
import java.util.Date;
public class DateToLocalTime {
public static void main(String[] args) {
Date nowDate = new Date();
// 將Date轉(zhuǎn)換為LocalTime
LocalTime localTime = nowDate.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalTime();
System.out.println("Date: " + nowDate);
System.out.println("LocalTime: " + localTime);
}
}(2)LocalTime轉(zhuǎn)Date
由于 LocalTime 只包含時(shí)間信息,轉(zhuǎn)換為 Date 時(shí)需要結(jié)合日期:
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.util.Date;
public class LocalTimeToDate {
public static void main(String[] args) {
LocalTime localTime = LocalTime.now();
// 將LocalTime轉(zhuǎn)換為Date(需要結(jié)合日期)
Date date = Date.from(LocalDate.now()
.atTime(localTime)
.atZone(ZoneId.systemDefault())
.toInstant());
System.out.println("LocalTime: " + localTime);
System.out.println("Date: " + date);
}
}到此這篇關(guān)于JAVA時(shí)間類型轉(zhuǎn)換處理方式的文章就介紹到這了,更多相關(guān)java時(shí)間類型轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java構(gòu)造函數(shù)與普通函數(shù)用法詳解
本篇文章給大家詳細(xì)講述了Java構(gòu)造函數(shù)與普通函數(shù)用法以及相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友可以參考學(xué)習(xí)下。2018-03-03
Java JSON全解析6種主流方案深度對(duì)比與實(shí)戰(zhàn)指南
本文介紹了Java中六種主流的JSON解析庫:Jackson、Gson、FastJSON、JsonPath、org.json和手動(dòng)解析,每種庫都有其適用的場景和特點(diǎn),文章還提供了每種庫的基礎(chǔ)轉(zhuǎn)換和高級(jí)功能的實(shí)戰(zhàn)代碼示例,感興趣的朋友跟隨小編一起看看吧2026-01-01
Java開發(fā)環(huán)境jdk 1.8安裝配置方法(Win7 64位系統(tǒng)/windows server 2008)
這篇文章主要介紹了Java開發(fā)環(huán)境配置方法(Win7 64位系統(tǒng)/windows server 2008),需要的朋友可以參考下2016-10-10
Spring?Boot?3.x?GraalVM原生鏡像構(gòu)建內(nèi)存溢出問題解決方案
文章解析了Spring?Boot?3.x與GraalVM?Native?Image構(gòu)建過程中出現(xiàn)的內(nèi)存溢出問題,從問題概述、根本原因、診斷工具、解決方案到高級(jí)調(diào)優(yōu)技巧和應(yīng)急解決方案,全面覆蓋了構(gòu)建優(yōu)化的各個(gè)方面,本文給大家介紹的非常詳細(xì),感興趣的朋友一起學(xué)習(xí)下吧2026-01-01

