获取时间和日期的Java库或Android

时间:2013-08-23 10:26:52

标签: java android datetime calendar

简单的菜鸟问题:我应该使用java.util获取Android应用程序的系统日期和时间,还是应该使用android日历类。 Java对我来说使用起来要容易得多,因为它让我对一周中的某一天变得更容易。请指导。

由于

编辑:我希望应用程序在没有互联网连接的情况下运行,从手机中获取时间和日期。

2 个答案:

答案 0 :(得分:1)

使用Calendar

Calendar cal = Calendar.getInstance(); 
int week = cal.get(Calendar.DAY_OF_WEEK);

您还可以考虑Time课程。

答案 1 :(得分:1)

tl; dr

LocalDate                        // Represent a date, without time-of-day, and without time zone.
.now( ZoneId.systemDefault() )   // Capture the current date as seen in a particular time zone.
.getDayOfWeek()                  // Returns a `DayOfWeek` enum object.
.getDisplayName​(                 // Generate localized text for the day-of-week’s name.
    TextStyle.FULL ,             // How long or abbreviated should be the day-of-week name.
    Locale.getDefault()          // The human language and cultural norms to use in localizing.
)

星期一

java.time

我应该使用java.util获取android应用的系统日期和时间,还是应该使用android calender类

都不是。现代的解决方案是 java.time 类。

您问:

获取星期几

Capture the current date,如JVM当前的默认时区所示。

LocalDate ld = LocalDate.now( ZoneId.systemDefault() ) ;

提取day of week

DayOfWeek dow = ld.getDayOfWeek() ;

生成星期几名称的本地化文本。

Locale locale = Locale.getDefault() ;
String output = dow.getDisplayName​( TextStyle.FULL , locale ) ;

Table of all date-time types in Java, both modern and legacy


关于 java.time

java.time框架已内置在Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendarSimpleDateFormat

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

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

您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*类。 Hibernate 5和JPA 2.2支持 java.time

在哪里获取java.time类?

Table of which java.time library to use with which version of Java or Android