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

java Date實(shí)現(xiàn)轉(zhuǎn)成LocalDate和LocalTime,LocalDateTime

 更新時(shí)間:2026年05月16日 16:34:07   作者:一直到老到直一  
本文介紹了Java中的Date與LocalDate、LocalTime、LocalDateTime之間的轉(zhuǎn)換方法,使用Instant作為中間橋梁,并強(qiáng)調(diào)了時(shí)區(qū)的重要性,文中提供了示例代碼,幫助讀者更好地理解和應(yīng)用這些API

在Java中,java.util.Date 代表了自“the epoch”(即1970年1月1日 00:00:00 GMT)以來(lái)的毫秒數(shù)。而java.time包(Java 8及以后版本)中的LocalDate、LocalTimeLocalDateTime則提供了更為豐富和直觀的日期時(shí)間API。

要將java.util.Date轉(zhuǎn)換為LocalDate、LocalTimeLocalDateTime,可以使用java.time.Instant類作為中間橋梁,因?yàn)?code>Instant類可以表示時(shí)間線上的一個(gè)瞬時(shí)點(diǎn),與java.util.Date有相似的用途(盡管Instant是以UTC表示的,而Date是相對(duì)于默認(rèn)時(shí)區(qū)的)。

Date 轉(zhuǎn) LocalDate

import java.util.Date;  
import java.time.LocalDate;  
import java.time.Instant;  
import java.time.ZoneId;  
  
public class DateToLocalDate {  
    public static void main(String[] args) {  
        Date date = new Date(); // 獲取當(dāng)前日期時(shí)間  
  
        // 轉(zhuǎn)換為Instant  
        Instant instant = date.toInstant();  
  
        // 轉(zhuǎn)換為L(zhǎng)ocalDate,需要指定時(shí)區(qū),因?yàn)長(zhǎng)ocalDate不包含時(shí)區(qū)信息  
        // 這里使用系統(tǒng)默認(rèn)時(shí)區(qū)  
        LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();  
  
        System.out.println("LocalDate: " + localDate);  
    }  
}

Date 轉(zhuǎn) LocalTime

import java.util.Date;  
import java.time.LocalTime;  
import java.time.Instant;  
import java.time.ZoneId;  
  
public class DateToLocalTime {  
    public static void main(String[] args) {  
        Date date = new Date(); // 獲取當(dāng)前日期時(shí)間  
  
        // 轉(zhuǎn)換為Instant  
        Instant instant = date.toInstant();  
  
        // 轉(zhuǎn)換為L(zhǎng)ocalTime,需要指定時(shí)區(qū)  
        LocalTime localTime = instant.atZone(ZoneId.systemDefault()).toLocalTime();  
  
        System.out.println("LocalTime: " + localTime);  
    }  
}

Date 轉(zhuǎn) LocalDateTime

import java.util.Date;  
import java.time.LocalDateTime;  
import java.time.Instant;  
import java.time.ZoneId;  
  
public class DateToLocalDateTime {  
    public static void main(String[] args) {  
        Date date = new Date(); // 獲取當(dāng)前日期時(shí)間  
  
        // 轉(zhuǎn)換為Instant  
        Instant instant = date.toInstant();  
  
        // 轉(zhuǎn)換為L(zhǎng)ocalDateTime,需要指定時(shí)區(qū)  
        LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();  
  
        System.out.println("LocalDateTime: " + localDateTime);  
    }  
}

在上述示例中,首先將java.util.Date對(duì)象轉(zhuǎn)換為java.time.Instant,然后通過(guò)atZone(ZoneId.systemDefault())方法將其轉(zhuǎn)換為特定時(shí)區(qū)(這里是系統(tǒng)默認(rèn)時(shí)區(qū))的ZonedDateTime對(duì)象。由于LocalDate、LocalTimeLocalDateTime都是時(shí)區(qū)無(wú)關(guān)的(對(duì)于LocalDateTime來(lái)說(shuō),它實(shí)際上是“本地”的,不包含時(shí)區(qū)信息,但在這里通過(guò)指定時(shí)區(qū)來(lái)從Instant獲取它),最后通過(guò)調(diào)用.toLocalDate()、.toLocalTime().toLocalDateTime()方法將它們從ZonedDateTime中提取出來(lái)。

注意:

在轉(zhuǎn)換過(guò)程中,需要指定一個(gè)時(shí)區(qū),因?yàn)?code>java.util.Date本身并不包含時(shí)區(qū)信息,它只是自epoch以來(lái)的毫秒數(shù)。因此,在轉(zhuǎn)換為LocalDate、LocalTimeLocalDateTime時(shí),需要明確想要哪個(gè)時(shí)區(qū)的日期或時(shí)間。

如果想要的是UTC時(shí)間,你可以使用ZoneId.of("UTC")代替ZoneId.systemDefault()。

總結(jié)

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

相關(guān)文章

最新評(píng)論

桐庐县| 丰原市| 香格里拉县| 抚远县| 六盘水市| 九龙坡区| 旺苍县| 会理县| 宁化县| 丹巴县| 威信县| 弥勒县| 河东区| 湘阴县| 闸北区| 安丘市| 利津县| 灵石县| 壤塘县| 长垣县| 安西县| 崇义县| 班玛县| 平安县| 静海县| 徐水县| 根河市| 台安县| 牡丹江市| 连江县| 阜康市| 东方市| 蒲江县| 合川市| 维西| 湘阴县| 九江市| 仙桃市| 井陉县| 霍山县| 桃园市|