gpt4 book ai didi

java - 从日期选择器中获取值

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:27:45 24 4
gpt4 key购买 nike

我想从 JavaFX 日期选择器中获取值并将该值存储为日期对象:

final DatePicker datePicker = new DatePicker(LocalDate.now());
Date date = datePicker.getValue();
grid.add(datePicker, 1, 9);

你能告诉我如何将 LocalDate 转换为 Date 吗?

最佳答案

顾名思义,LocalDate 不存储时区或一天中的时间。因此,要转换为绝对时间,您必须指定时区和时间。有一个简单的方法可以同时执行这两项操作,即 atStartOfDay(ZoneId)。这里我使用默认时区,即计算机的本地时区。这为您提供了一个 Instant 对象,它代表了即时的时间。最后,Java 8 为 Date 添加了一个工厂方法以从 Instant 构造。

LocalDate localDate = datePicker.getValue();
Instant instant = Instant.from(localDate.atStartOfDay(ZoneId.systemDefault()));
Date date = Date.from(instant);
System.out.println(localDate + "\n" + instant + "\n" + date);

这将为您提供如下所示的输出。请注意,Instant 默认以 UTC 格式打印。

2014-02-25
2014-02-25T06:00:00Z
Tue Feb 25 00:00:00 CST 2014

当然,您需要将 java.util.Date 转换为 java.time.LocalDate 才能在 DatePicker 上设置值。为此,您需要这样的东西:

Date date = new Date();
Instant instant = date.toInstant();
LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println(date + "\n" + instant + "\n" + localDate);

这会给你这样的输出:

Tue Feb 25 08:47:04 CST 2014
2014-02-25T14:47:04.395Z
2014-02-25

关于java - 从日期选择器中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com