gpt4 book ai didi

java - 如何在特定年份之前创建条件语句

转载 作者:行者123 更新时间:2023-11-29 04:45:05 29 4
gpt4 key购买 nike

我有一个方法应该只处理特定年份之前的字符串。但是我似乎无法使它正常工作——我认为比较没有正确完成。谁能告诉我这几年的比较是如何完成的。如果 Joda time 更好,你也可以展示如何(而不是告诉我只使用 joda time)

该字符串采用英国日期格式,例如 16/02/2006

我的代码:

DateFormat df = new SimpleDateFormat("yyyy"); 
Date yearOnReport = df.parse(startDateString);
Date threshold = df.parse("2006")
if (yearOnReport<threshold){
...\\Do some stuff
}

最佳答案

在 Java 8 中,使用 LocalDate和一个 DateTimeFormatter :

String startDateString = "16/02/2006";

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/uuuu");
LocalDate localDate = LocalDate.parse(startDateString, dateTimeFormatter);
if (localDate.getYear() < 2006) {
// code here
}

如果您需要支持旧版本的 Java,请使用 CalendarSimpleDateFormat :

String startDateString = "16/02/2006";

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = simpleDateFormat.parse(startDateString);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
if (calendar.get(Calendar.YEAR) < 2006) {
// code here
}

在 Java 7 中,您可以通过从 ThreeTen project 中获取新的 java.time API 的向后移植来以 Java 8 的方式完成此操作。 .
优点:代码将在以后升级到 Java 8 时正常工作,而无需 Java 8 中的额外库。

或者,添加 Joda-Time并使用它的 LocalDateDateTimeFormat :

String startDateString = "16/02/2006";

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
LocalDate localDate = formatter.parseLocalDate(startDateString);
if (localDate.getYear() < 2006) {
// code here
}

关于java - 如何在特定年份之前创建条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37518420/

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