Android

时间:2015-08-11 18:05:09

标签: android calendar

我正在使用Android应用,我需要在日历中显示一周的日期。我可以使用日历API吗?或者我可以使用图书馆吗? 感谢

4 个答案:

答案 0 :(得分:0)

对于Android中的日期处理,我建议使用310ABP,这是适用于Android的Java 8新约会API的一个端口。

答案 1 :(得分:0)

使用Calendar对象完成这些工作。

答案 2 :(得分:0)

您可以使用JodaTime库来显示一周中的当前日期。

LocalDate newDate = new LocalDate();
int dayOfWeek = newDate.getDayOfWeek();

答案 3 :(得分:0)

  

或者我可以使用图书馆吗?

是。使用java.time类的后端口。请参阅" Android"项目如下。

使用java.time

LocalDate

LocalDate类表示没有时间且没有时区的仅限日期的值。

时区对于确定日期至关重要。对于任何给定的时刻,日期在全球范围内因地区而异。例如,在Paris France午夜后的几分钟是新的一天,而Montréal Québec中仍然是“昨天”。

continent/region的格式指定proper time zone name,例如America/MontrealAfrica/CasablancaPacific/Auckland。切勿使用诸如ESTIST之类的3-4字母缩写,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)。

ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );

TemporalAdjuster

要获得一周的第一天,(a)决定一周的第一天是什么时候,(b)使用TemporalAdjuster中定义的TemporalAdjusters实施方式来确定特定的[DayOfWeek] [6]枚举对象。

LocalDate ld = today.with( TemporalAdjusters.previousOrSame( DayOfWeek.MONDAY ) ) ;

要获得一周的日期,请一次添加一天。

LocalDate localDate = ld ; // Initialize our looping variable.
List<LocalDate> dates = new ArrayList<>( 7 ) ;
for( int i = 0 , i < 7 , i ++ ) {  // Loop seven times, to cover a week.
   localDate = localDate.plusDays( i ); 
   dates.add( localDate ) ;
}

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和&amp; SimpleDateFormat

现在位于Joda-Timemaintenance mode项目建议迁移到java.time类。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

从哪里获取java.time类?