Щоб перетворити a Date
заперечувати проти LocalDate
або LocalDateTime
і навпаки в Java, ви можете використовувати java.time
представлений у Java 8. Ось докладний посібник щодо виконання цих перетворень:
1. Перетворення Date
до LocalDate
Використання Instant
і ZoneId
:
- Спочатку перетворіть
Date
до анInstant
. - Потім використовуйте
Instant
створити aLocalDate
з бажанимZoneId
.
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
public class DateToLocalDate {
public static void main(String[] args) {
Date date = new Date(); // current date
Instant instant = date.toInstant();
LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println("Date: " + date);
System.out.println("LocalDate: " + localDate);
}
}
2. Перетворення LocalDate
до Date
Використання ZoneId
і Instant
:
- Перетворіть
LocalDate
до аZonedDateTime
з бажанимZoneId
. - Потім перетворіть
ZonedDateTime
до анInstant
і використовувати його для створення aDate
.
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
public class LocalDateToDate {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now(); // current date
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
Date date = Date.from(zonedDateTime.toInstant());
System.out.println("LocalDate: " + localDate);
System.out.println("Date: " + date);
}
}
3. Перетворення Date
до LocalDateTime
Використання Instant
і ZoneId
:
- Спочатку перетворіть
Date
до анInstant
. - Потім використовуйте
Instant
створити aLocalDateTime
з бажанимZoneId
.
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
public class DateToLocalDateTime {
public static void main(String[] args) {
Date date = new Date(); // current date
Instant instant = date.toInstant();
LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println("Date: " + date);
System.out.println("LocalDateTime: " + localDateTime);
}
}
4. Перетворення LocalDateTime
до Date
Використання ZoneId
і Instant
:
- Перетворіть
LocalDateTime
до аZonedDateTime
з бажанимZoneId
. - Потім перетворіть
ZonedDateTime
до анInstant
і використовувати його для створення aDate
.
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
public class LocalDateTimeToDate {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now(); // current date and time
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
Date date = Date.from(zonedDateTime.toInstant());
System.out.println("LocalDateTime: " + localDateTime);
System.out.println("Date: " + date);
}
}
5. Підведення підсумків
- Від
Date
доLocalDate
абоLocalDateTime
:- конвертувати
Date
доInstant
. - використання
Instant
зZoneId
СтворюватиLocalDate
абоLocalDateTime
.
- конвертувати
- Від
LocalDate
абоLocalDateTime
доDate
:- використання
ZoneId
СтворюватиZonedDateTime
. - конвертувати
ZonedDateTime
доInstant
. - використання
Instant
СтворюватиDate
.
- використання
Ці методи гарантують, що перетворення зважають на часовий пояс і зберігають правильну інформацію про дату й час.