我正在使用Java的 java.time 包来显示基于Android中当前日期的星期日期。我想要星期天到星期六。
但是'Time package link:'是从API 26添加的。因此,API 26以下不支持它。因此,我需要一个替代解决方案。这样,我可以在API 26以下运行。
请为我提供一个替代解决方案,以根据Android中的当前日期显示星期日期。
答案 0 :(得分:2)
因此,API 26以下不支持它。
您可以使用早期的Android中的 java.time 功能。使用后端口。
因此,我需要一个替代解决方案。
不,你没有。
保持代码原样。后端端口几乎具有相同的API。因此,您只需要交换 import 语句即可。
大多数 java.time 功能都在 ThreeTen-Backport 项目中反向移植到Java 6和Java 7。
该项目由同一人Stephen Colebourne领导,他领导JSR 310规范, java.time 实现和 Joda-Time 。
ThreeTen-Backport 项目在 ThreeTenABP 项目中进一步针对Android进行了改编。
ZoneId z = ZoneId.systemDefault() ; // Or ZoneId.of( "Africa/Tunis" )
LocalDate today = LocalDate.now( z ) ;
LocalDate localDate = today.with( org.threeten.bp.temporal.TemporalAdjusters.previousOrSame( DayOfWeek.SUNDAY ) ) ;
List< LocalDate > dates = new ArrayList<>( 7 ) ;
for( int i = 0 ; i < 7 ; i ++ ) {
localDate = localDate.plusDays( i ) ;
dates.add( localDate ) ;
}
答案 1 :(得分:1)
尝试这样的事情。
int NUM_DAYS = 7; // You can get as many dates as you want.
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.SUNDAY); // The first day you want dates from.
calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
for (int i=0; i < NUM_DAYS; i++){
Date date = calendar.getTime();
System.out.println(new SimpleDateFormat("EEEE dd/MM/yyyy").format(date));
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
答案 2 :(得分:0)
这是两个Calendar对象。
Calendar calendarCurrent = Calendar.getInstance();
calendarCurrent.getTime(); // To get current date-time.
Calendar calendarWeek = Calendar.getInstance();
calendarWeek.add(Calendar.DAY_OF_MONTH, 7);
calendarWeek.getTime(); // To get after 7 day's date-time.
如果要在日历视图中显示它,则可以如下设置maxDate。
calendarView.setMinDate(calendarCurrent.getTimeInMillis());
calendarView.setMaxDate(calendarWeek.getTimeInMillis());