LocalDate、LocalDateTime 一些轉換


import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public static void main(String[] args) {
        // LocalDateTime轉字符串(true)
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println("LocalDateTime轉字符串:" + localDateTime.format(formatter));

        // 將時間字符串轉自定義格式的LocalDateTime
        String timeString = "2020-10-22 15:22:54";
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime parse = LocalDateTime.parse(timeString, dateTimeFormatter);
        System.out.println("字符串轉LocalDateTime:" + parse.format(dateTimeFormatter));

        // 時間戳轉LocalDateTime(true)
        long time = new Date().getTime();
        System.out.println("java時間戳:" + time);
        DateTimeFormatter dateTimeFormatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        Instant instant = Instant.ofEpochMilli(time);
        ZoneId zoneId = ZoneId.systemDefault();
        LocalDateTime localDateTime1 = LocalDateTime.ofInstant(instant, zoneId);
        System.out.println("時間戳轉LocalDateTime:" + localDateTime1.format(dateTimeFormatter3));

        // LocalDateTime轉時間戳(true)
        LocalDateTime localDateTime2 = LocalDateTime.now();
        ZoneId zoneId1 = ZoneId.systemDefault();
        Instant instant1 = localDateTime2.atZone(zoneId1).toInstant();
        System.out.println("LocalDateTime轉時間戳:" + instant1.toEpochMilli());



        // LocalDate轉字符串
        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate localDate = LocalDate.now();
        System.out.println("LocalDate轉字符串:" + localDate.format(formatter1));

        // 將時間字符串轉自定義格式的LocalDate
        String timeString2 = "2020-10-22";
        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        System.out.println("字符串轉LocalDate:" + LocalDate.parse(timeString2, dateTimeFormatter1));

        // 時間戳轉LocalDate
        long time1 = new Date().getTime();
        System.out.println("java時間戳:" + time1);
        Instant instant2 = Instant.ofEpochMilli(time1);
        ZoneId zoneId2 = ZoneId.systemDefault();
        System.out.println("時間戳轉LocalDate:" + instant2.atZone(zoneId2).toLocalDate());

        // LocalDate轉時間戳
        LocalDate localDate2 = LocalDate.now();
        ZoneId zoneId3 = ZoneId.systemDefault();
        System.out.println("LocalDate轉時間戳:" + localDate2.atStartOfDay(zoneId3).toInstant().toEpochMilli());

     // LocalDate之間相差幾天
     LocalDate.
toEpochDay() - LocalDate.toEpochDay() = 1 ; 表明:一個是1號 一個是2
     // LocalDateTime轉LocalDate
        DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        DateTimeFormatter dateTimeFormatter4 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDateTime localDateTime3 = LocalDateTime.now();
        System.out.println("LocalDateTime轉LocalDate:"+localDateTime3.format(dateTimeFormatter2));
        LocalDate localDate1 = localDateTime3.toLocalDate();
        System.out.println("LocalDateTime轉LocalDate:"+localDate1.format(dateTimeFormatter4));
    
    
    LocalDate today = LocalDate.now();
       // LocalDate 算本周開始日期和本周結束日期
    LocalDate monday = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
    LocalDate sunday = today.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
       // 算本月開始和結束日期
    LocalDate firstDay = today.with(TemporalAdjusters.firstDayOfMonth());
    LocalDate endDay = today.with(TemporalAdjusters.lastDayOfMonth());
 
         

 


 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM