gpt4 book ai didi

java - 我怎样才能得到java中的日期的月份日以在甘特图中使用

转载 作者:行者123 更新时间:2023-11-30 01:50:22 26 4
gpt4 key购买 nike

我想在java中获取日期的月份

我尝试 getday() 但它返回星期几

     for (int i =0; i<count; i++) {

series1.add(new Task(Names.get(i),
Date.from(LocalDate.of(Dates.get(j).getYear(), Dates.get(j).getMonth(),Dates.get(j).getDay()).atStartOfDay().toInstant(ZoneOffset.UTC)),
Date.from(LocalDate.of(Dates.get(k).getYear(),Dates.get(k).getMonth(),Dates.get(k).getDay()).atStartOfDay().toInstant(ZoneOffset.UTC))
)
);

j+=2;k+=2;

}

最佳答案

我研究了您之前的 Stack Overflow 问题以了解一些背景信息。请不要指望 Stack Overflow 用户通常会这样做。他们不会。

据我了解,Taskorg.jfree.data.gantt.Task来自 JFreeChart,其构造函数需要两个 java.util.Date参数(开始和结束)。您正在获取java.sql.Date来自数据库的对象。

虽然您不能(合理地)更改 JFreeChart,但从 JDBC 4.2 开始,您可以利用现代化的 LocalDate对象而不是老式的java.sql.Date数据库中的对象:

    while (rs.next()) {
String a = rs.getString("TITRE");
LocalDate startDate = rs.getObject("DATE DEBUT Prévi", LocalDate.class);
LocalDate endDate = rs.getObject("DATE FIN prévi", LocalDate.class);
series1.add(new Task(a,
Date.from(startDate.atStartOfDay().toInstant(ZoneOffset.UTC)),
Date.from(endDate.atStartOfDay().toInstant(ZoneOffset.UTC))
)
);
}

我发现在构建 Task 之前,不要将获取的数据放入单独的列表中并再次将其取出,这样更简单。对象。在您的代码中,请按照您认为最好的方式进行操作。

附注getXxx java.sql.Date的方法和java.util.Date已被弃用,因为它们跨时区工作不可靠,因此即使您无法避免这些类,也不要调用这些方法。如果您确实得到 java.sql.Date从某个地方,要做的第一件事就是调用它的 toLocalDate​将其转换为现代的方法LocalDate .

编辑:您在使用嵌套方法调用的单个语句中做了很多事情。我同意巴兹尔· boolean 克(Basil Bourque)的评论,即读者(和你自己?)可能很难理解这一点。我相信这也是人们(包括我自己)不理解你的问题的部分原因。我们建议分手。一个例子是:

        Instant startInstant = startDate.atStartOfDay().toInstant(ZoneOffset.UTC);
Date startUtilDate = Date.from(startInstant);
// Similarly for end date

Task newTask = new Task(a, startUtilDate, endUtilDate);
series1.add(newTask);

虽然比较啰嗦,但现在每个步骤都很容易遵循。

而不是 startDate.atStartOfDay().toInstant(ZoneOffset.UTC)我通常这样做startDate.atStartOfDay(ZoneOffset.UTC).toInstant() ,但这是品味或习惯的问题。两种情况的结果是相同的。

链接

关于java - 我怎样才能得到java中的日期的月份日以在甘特图中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56299622/

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