如何使用 java 中的 Arraylist 迭代过去 30 天内的所有日期
how to iterate all days in last 30 days using Arraylist in java
我需要获取从今天到过去 30 日之间的所有日期。我想将这一天设置为 arraylist 。
我在 java 中使用日历已经过了 30 天,现在我想获取所有日期并将它们设置到 ArrayList
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date toDate = cal.getTime();
cal.add(Calendar.DATE, -30);
Date fromDate = cal.getTime();
帮助我
tl;博士
today.minusDays( 30 ).datesUntil( today ).toList()
避免遗留日期时间 classes
Calendar
class 不适合仅日期值。
此外,class 在设计上存在严重缺陷,现在已过时,多年前已被现代 java.time class 取代es 在 JSR 310 中定义。
java.time.LocalDate
对于仅限日期的值,使用 LocalDate
. To get a series of dates, call LocalDate.html#datesUntil
获取流。
获取今天的日期。
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
LocalDate today = LocalDate.now( z ) ;
返回 30 天。
LocalDate thirtyDaysAgo = today.minusDays( 30 ) ;
获取 Stream
个日期。
Stream< LocalDate > datesStream = thirtyDaysAgo.datesUntil( today ) ;
为该流中的对象制作 List
。
List< LocalDate > dates = datesStream.toList() ;
我们可以合并这些行。
List< LocalDate > dates = today.minusDays( 30 ).datesUntil( today ).toList() ;
我需要获取从今天到过去 30 日之间的所有日期。我想将这一天设置为 arraylist 。
我在 java 中使用日历已经过了 30 天,现在我想获取所有日期并将它们设置到 ArrayList
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date toDate = cal.getTime();
cal.add(Calendar.DATE, -30);
Date fromDate = cal.getTime();
帮助我
tl;博士
today.minusDays( 30 ).datesUntil( today ).toList()
避免遗留日期时间 classes
Calendar
class 不适合仅日期值。
此外,class 在设计上存在严重缺陷,现在已过时,多年前已被现代 java.time class 取代es 在 JSR 310 中定义。
java.time.LocalDate
对于仅限日期的值,使用 LocalDate
. To get a series of dates, call LocalDate.html#datesUntil
获取流。
获取今天的日期。
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
LocalDate today = LocalDate.now( z ) ;
返回 30 天。
LocalDate thirtyDaysAgo = today.minusDays( 30 ) ;
获取 Stream
个日期。
Stream< LocalDate > datesStream = thirtyDaysAgo.datesUntil( today ) ;
为该流中的对象制作 List
。
List< LocalDate > dates = datesStream.toList() ;
我们可以合并这些行。
List< LocalDate > dates = today.minusDays( 30 ).datesUntil( today ).toList() ;