gpt4 book ai didi

java - 在java中使用日期,并且仅使用日期

转载 作者:行者123 更新时间:2023-11-30 06:09:17 25 4
gpt4 key购买 nike

我正在编写一个 java 程序,并且我已经被 Java 编程的所有 Date、DateTime 等部分困住了很长一段时间。

我想要的是只有一个 DATE 对象。我有一个类:

部署.java

public class Deployment {

int id;
LocalDate deviceDeploymentDate; //I'm unsure what this should be

public Deployment(int id, LocalDate deviceDeploymentDate) {
this.id = id;
this.deviceDeploymentDate = deviceDeploymentDate;
}

public Deployment() {

}

public LocalDate getDeviceDeploymentDate() {
return deviceDeploymentDate;
}

public void setDeviceDeploymentDate(LocalDate date) {
this.deviceDeploymentDate = date;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}
}

我的 GUI 中有一个日期选择器。

JDatePickerImpl

从这个日期选择器中,我可以获取字符串格式的日期(如果需要的话,也可以将其更改为整数年、整数月和整数日期)。由此,我想在我的部署对象中存储某种日期,并且我根本不希望时间成为其中的一部分。

问题

我应该使用哪种数据类型来执行此操作?我该怎么办?

其他

我很快就查看了 Joda Time,但无法从日期选择器获取的字符串或整数创建 LocalDate/DateTime 类型。

最佳答案

Joda-Time 很棒,但自从 Java 8 及更高版本中的日期时间 API 以来,基本上不需要它了。背后的团队Joda-Time甚至建议 Java 8 或更高版本的用户使用标准 API:

Note that from Java SE 8 onwards, users are asked to migrate to java.time (JSR-310) - a core part of the JDK which replaces this project.

鉴于此,您应该使用 LocalDate来自标准 API java.time。您的 Deployment 类看起来就像现在一样,只需确保导入正确的包 (java.time.LocalDate)。

由于您有权访问字段(年、月和日),因此您可以使用 of() 之一API 中的方法:

LocalDate.of(year, month, day);

请注意,monthday 从 1 开始,即一月是第 1 个月。在之前的日期/日历 API 中,月份计数是从 0 开始的,即一月是月份0. 换句话说,如果混合使用这两个 API,请务必小心。

顺便说一句,java.time 有一个预定义的 Month 枚举,它可能会很方便,而不是使用整数表示月份:

LocalDate localDate = LocalDate.of(2012, Month.January, 31);

关于java - 在java中使用日期,并且仅使用日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306294/

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