检查String" Date"超过7天

时间:2018-01-12 15:04:17

标签: java string date time

我收到如下字符串的日期:

"2018-01-10T14:10:03.000+0200"

"2018-01-03T12:17:35.000+0200"

由于这对我来说太复杂了,我用substring方法将它们剪下来,然后用这种格式将它们保存在一个字符串中:

String date = "2018-01-10";

如何知道包含此格式日期的字符串是否超过现在的7天?

我的解决方案是将日期的每个部分保存为整数(int year,int month,int day)或类似的东西,并使用if子句在最后查找日期是否在7天限制内,但这似乎太复杂了,我很确定有人找到了一个更简单的解决方案。

提前致谢。

2 个答案:

答案 0 :(得分:6)

操作日期时,最好使用适当的日期/时间对象,而不是使用字符串。格式看起来很复杂,但使用内置类解析并不困难。

在你的情况下,它可能相当短:

String date1 = "2018-01-03T12:17:35.000+0200";
String date2 = "2018-01-10T14:10:03.000+0200";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSx");
long days = ChronoUnit.DAYS.between(
                    OffsetDateTime.parse(date1, fmt),
                    OffsetDateTime.parse(date2, fmt));

答案 1 :(得分:1)

首先,将日期字符串转换为日期格式,如 -

String date = "2018-01-10";
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date yourDate = format.parse(date);

然后,将其与当前日期进行比较 -

Date todayDate = Calendar.getInstance(Locale.ENGLISH).getTime();
int diffInDays = (int) ((todayDate.getTime() - yourDate.getTime()) / (1000 * 60 * 60 * 24));

检查diffInDays是否大于7。你有解决方案。