4

如何将Java 8 Calendar转换为 LocalDateTime?

 1 year ago
source link: https://www.jdon.com/62491
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何将Java 8 Calendar转换为 LocalDateTime?


在 Java 8 中将 Calendar 对象转换为 LocalDateTime 的快速示例。而LocalDateTime.ofInstant() 用于将 Calendar 转换为 LocalDateTime 对象。
LocalDateTime api 可以完全替代 Date 类,因为 Date 函数的所有功能都以简单而精确的方式完成。

要将 Calendar 转换为 LocalDateTime,您需要执行以下步骤。
步骤1:
首先,使用返回 Calendar 对象的 Calendar.getInstance() 方法创建一个Calendar实例 。
第2步 :
接下来,使用calendar.getTimeZone() 方法从日历实例中获取时区。
第 3 步:
现在,使用timezone.toZoneId()方法从 TimeZone 类中 获取ZoneId对象。
最后, 使用日历即时和区域 ID 值调用LocalDateTime.ofInstant(calendar.toInstant(), zoneId)方法

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Calendar;
import java.util.TimeZone;

public class CalenderToLocalDateTimeExample {

    public static void main(String[] args) {

        //Create a calender instance.
        Calendar calendar = Calendar.getInstance();

        System.out.println("Calender instance : "+calendar);

        // Getting the timezone
        TimeZone tz = calendar.getTimeZone();

        // Getting zone id
        ZoneId zoneId = tz.toZoneId();

        // conversion
        LocalDateTime localDateTime = LocalDateTime.ofInstant(calendar.toInstant(), zoneId);

        System.out.println("Local date time object  : "+localDateTime);

    }
}
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Calendar;
import java.util.Date;

public class CalenderToLocalDateExample {

    public static void main(String[] args) {

        Calendar cal = Calendar.getInstance();
        Date input = cal.getTime();
        LocalDate la = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

        System.out.println("Calender to LocalDate : "+la);
    }
}

可以在一行中将转换为 Java 8 中的 LocalDateTime 和 LocalDate。为重用 . 编写单独的方法是一种很好的做法:

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Calendar;

public class SingleLineCalenderToLocalDateTimeExample {

    public static void main(String[] args) {

        //Create a calender instance.
        Calendar calendar = Calendar.getInstance();


        LocalDateTime singleLineLocalDateTime = getLocalDateTime(calendar);
        LocalDate singleLineLocalDate = getLocalDate(calendar);

        System.out.println("Converted LocalDateTime : "+singleLineLocalDateTime);
        System.out.println("Converted LocalDate : "+singleLineLocalDate);

    }

    private static LocalDateTime getLocalDateTime(Calendar calendar){

        return  LocalDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId());
    }

    private static LocalDate getLocalDate(Calendar calendar){

        return  LocalDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId()).toLocalDate();
    }
}

显示的程序示例在 GitHub 中。

CalenderToLocalDateExample.java

CalenderToLocalDateTimeExample.java

SingleLineCalenderToLocalDateTimeExample.java


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK