gpt4 book ai didi

java - 如何在新的 Java 对象中使用日期类型?

转载 作者:行者123 更新时间:2023-11-29 08:28:52 25 4
gpt4 key购买 nike

我想知道如何在新对象中使用 Date 类型?

我将在展示我的代码时做更多解释:

我有一个 Java 类:

赖齐格:

import java.util.Date;

public class Reiziger {
private String naam;
private Date gbdatum;

public Reiziger(String nm, Date gbdtm) {
this.naam = nm;
this. gbdatum = gbdtm;
}

public String getNaam() {
return naam;
}

public void setNaam(String naam) {
this.naam = naam;
}

public Date getGBdatum() {
return gbdatum;
}

public void setGBdatum(Date gbdatum) {
this.gbdatum = gbdatum;
}

public String toString() {
return naam + gbdatum;
}
}

还有一个主要的:

public class Main {
public static void main(String[] args) {
Reiziger r1 = new Reiziger("Joost", "01-01-1994");
Reiziger r2 = new Reiziger("Hans", null);

ReizigerOracleDaoImpl i1 = new ReizigerOracleDaoImpl();
i1.alleReizigers.add(r1);
i1.alleReizigers.add(r2);
System.out.println(i1.alleReizigers);
}
}

正如您在我的 main 中看到的那样,我尝试了很多东西,只有 null 有效。我想给对象添加一个日期 -> 例如:01-01-1994 但不起作用。

我试过没有“”也没有。

知道我做错了什么吗?

最佳答案

tl;dr

您将 String 对象传递给构造函数,但随后试图将其分配给不同类型的成员变量 (Date)。没有办法。方钉,圆孔。您必须首先将该文本解析为正确类型的对象。

另一个问题:您正在使用可怕的旧日期时间类 Date,而您应该使用现代 java.time.LocalDate 类。

LocalDate.of( 1994 , Month.JANUARY , 1 )

java.time

I would like to know how to use type Date in new object?

不要。

显然您想要一个仅限日期的值,因此请使用仅限日期的类而不是日期加时间类。

此外,永远不要使用 java.util.Date。它是多年前被 java.time 类取代的麻烦的旧日期时间类的一部分。

LocalDate class 表示没有时间和时区的仅日期值。通过 1 月到 12 月的数字 1-12 或 Month 枚举类指定月份部分。

LocalDate ld = LocalDate.of( 1994 , Month.JANUARY , 1 ) ;

更改您的成员变量:

private Date gbdatum ;

…到:

private LocalDate gbdatum ;

将构造函数更改为:

public Reiziger(String nm, LocalDate gbdtm)

这样调用它:

Reiziger r1 = new Reiziger( 
"Joost" ,
LocalDate.of( 1994 , Month.JANUARY , 1 )
) ;

关于java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date , Calendar , & SimpleDateFormat .

Joda-Time项目,现在在maintenance mode , 建议迁移到 java.time类。

要了解更多信息,请参阅 Oracle Tutorial .并在 Stack Overflow 中搜索许多示例和解释。规范为 JSR 310 .

您可以直接与您的数据库交换java.time 对象。使用JDBC driver符合 JDBC 4.2或以后。不需要字符串,不需要 java.sql.* 类。

从哪里获得 java.time 类?

ThreeTen-Extra项目用附加类扩展 java.time。该项目是 future 可能添加到 java.time 的试验场。您可能会在这里找到一些有用的类,例如 Interval , YearWeek , YearQuarter , 和 more .

关于java - 如何在新的 Java 对象中使用日期类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49988644/

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