java - java.util.localdate 遇到问题
问题描述
早上好!我在弄清楚我试图编写的这段代码可能遇到的潜在问题时遇到了一些麻烦,以便能够将我自己的日期传递给它并检索一些信息,如下所示。根据我的编辑器,主要问题似乎是一个LocalDate
变量与一个碰撞变量,String
我已经尝试将它转换为一个String
但没有成功。无论我使用什么方法parse()
或toString()
方法,都会对代码造成更大的伤害(我特别在构造函数中尝试DateAnalyzer()
了很多次,而在我的getDate()
函数中尝试了前者)。我的想法是我必须在里面工作,java.util.LocalDate
所以我非常感谢任何关于这个库的帮助。先感谢您!
package fact.it.exercisedateanalyzer.model;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
public class DateAnalyzer {
private LocalDate date;
public DateAnalyzer(String date) {
}
public int getNumberedDayOfTheYear() {
return LocalDate.now().getDayOfYear();
}
public int getNumberedDayOfTheMonth() {
return LocalDate.now().getDayOfMonth();
}
public DayOfWeek getDayOfWeek() {
return LocalDate.now().getDayOfWeek();
}
public Month getMonth() {
return LocalDate.now().getMonth();
}
public String get100DaysOld() {
return LocalDate.now().plusDays(100).toString();
}
public String get10MonthsOld() {
return LocalDate.now().plusMonths(10).toString();
}
public String getDate() {
return LocalDate.parse(date.toString());
}
}
解决方案
在您的方法中getDate()
,您使用LocalDate.parse
. 此方法用于将 String 转换为 LocalDate 而不是其他方式。(LocalDate.parse 的返回类型是 LocalDate)。
如果要将 LocalDate 变量转换为字符串,可以执行以下操作:
return date.toString(); //returns in format uuuu-MM-dd
我更喜欢使用 DateTimeFormatter ,您可以在其中获得您选择的格式。例子:
return DateTimeFormatter.ofPattern("uuuu-MM-dd").format(date)
有关更多模式,请查看 DateTimeFormatter 的文档:https ://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#patterns
编辑:
您还需要调整构造函数以像这样初始化 DateAnalyzer 中的日期变量(使用 DateTimeFormatter 传递您选择的模式):
public DateAnalyzer(String date) {
this.date = LocalDate.parse(date, DateTimeFormatter.ofPattern("uuuu-MM-dd"));
}
另一种方式:
public DateAnalyzer(String date) {
this.date = LocalDate.parse(date); //parses Strings in format uuuu-MM-dd
}
编辑2:
在您使用的其他方法中,LocalDate.now()
它提供了一个 LocalDate 变量。如果你想分析你在构造函数中传递的日期,用你的变量名替换这个出现的日期。
您的 - 方法示例getDayOfWeek()
:
public DayOfWeek getDayOfWeek() {
return date.getDayOfWeek();
}
推荐阅读
- mysql - Grafana 中使用 mysql 数据库制作图形时出现错误 1064
- python - 加载到 pd.DataFrame 时日期时间的奇怪行为
- python-3.x - 超时前未收到 SNMP 响应 - 带有非常基础的示例示例
- wireshark - 使用特定wireshark版本的editcap
- qt - qml:如何格式化列表视图的列
- r - 使用正则表达式从 R 中的 pdf 中提取链接
- python - 例如,如何使用 BeagleBoard 的 PRU 进行矩阵乘法?
- javascript - 反应:我怎样才能控制一个列表与状态?
- scala - 类中的一些方法通过错误“不是 org.deeplarning4j 的成员”
- python - 如何解决“NotADirectoryError:[Errno 20] 不是目录:”?