【问题标题】:Days of the week on AndroidAndroid 一周中的几天
【发布时间】:2015-08-11 18:05:09
【问题描述】:

我正在开发一个 Android 应用程序,我需要在其中显示日历中的星期几。我可以使用日历 API 做到这一点吗?或者有一个我可以使用的库? 谢谢

【问题讨论】:

标签: android calendar


【解决方案1】:

对于 Android 中的日期处理,我推荐 310ABP,它是适用于 Android 的 Java 8 新日期 API 的一个端口。

【讨论】:

    【解决方案2】:

    使用 Calendar 对象来完成这些事情。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        或者有我可以使用的库?

        是的。使用 java.time 类的后端端口。请参阅下面的“Android”项。

        使用 java.time

        LocalDate

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

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

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

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

        TemporalAdjuster

        要获得一周的第一天,(a) 决定一周的第一天是哪一天,(b) 使用在 TemporalAdjusters 中定义的 TemporalAdjuster 实现来获取特定 [@ 987654359@][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.DateCalendarSimpleDateFormat

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

        要了解更多信息,请参阅Oracle Tutorial。并在 Stack Overflow 上搜索许多示例和解释。规格为JSR 310

        从哪里获得 java.time 类?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-30
          • 2015-02-04
          • 2013-12-17
          • 2011-09-06
          • 1970-01-01
          相关资源
          最近更新 更多