【发布时间】:2016-11-13 08:41:47
【问题描述】:
我正在编写一个 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 中有一个日期选择器。
从此日期选择器中,我可以获取字符串格式的日期(如果需要,还可以将其更改为 int year、int month 和 int date)。由此,我想在我的 Deployment 对象中存储某种 DATE,我根本不希望时间成为其中的一部分。
问题
我应该使用哪种数据类型来执行此操作?我该怎么办?
杂项
我刚刚查看了 Joda Time,但无法从可以从日期选择器获取的字符串或整数创建 LocalDate / DateTime 类型。
【问题讨论】:
-
您可以使用您已经使用的类型,并将时间部分设置为 00:00:00。然后在格式化输出时,不要显示时间部分。
-
这可能是一种方法,但我宁愿使用仅包含日期元素的数据类型。原因是我要将元素存储在 SQL 数据库中,据我了解,SQL 数据库也只存储类型为“yyyy-MM-dd”的“字符串”(这就是所谓的“字符串" 不过是 Date 类型。
-
@Zeliax 不,没有严肃的数据库将日期时间类型存储为字符串。虽然您可以要求作为查询结果为您生成的值的字符串表示形式,但不要将该字符串与存储在数据库中的实际值混淆。内部存储将以比字符串更有效的方式实现。但是您想在 Java 中使用适当的数据类型是对的:请参阅 Java 中的
LocalDate类。
标签: java date datetime datepicker jodatime