如何获得一个月的日子?

yos*_*i24 46 java android

我想检索它是哪个月的哪一天.

比如今天是2011年8月29日.

我想做的就是得到29天或30天的天数.这个月的哪一天.

我该怎么做呢?

hoo*_*d82 89

你想要获得一个Calendar实例并获得它的月份日期

Calendar cal = Calendar.getInstance();
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);

String dayOfMonthStr = String.valueOf(dayOfMonth);
Run Code Online (Sandbox Code Playgroud)

您还可以获得DAY_OF_WEEK,DAY_OF_YEAR,DAY_OF_WEEK_IN_MONTH等.


Gau*_*ain 16

以下方法可帮助您查找任何指定日期的日期:

public static int getDayOfMonth(Date aDate) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(aDate);
    return cal.get(Calendar.DAY_OF_MONTH);
}
Run Code Online (Sandbox Code Playgroud)


Bas*_*que 8

TL;博士

LocalDate           // Represent a date-only, without time-of-day and without time zone.
.now()              // Better to pass a `ZoneId` optional argument to `now` as shown below than rely implicitly on the JVM’s current default time zone.
.getDayOfMonth()    // Interrogate for the day of the month (1-31). 
Run Code Online (Sandbox Code Playgroud)

java.time

现代方法是LocalDate表示仅日期值的类.

时区对于确定当前日期至关重要.对于任何给定的时刻,日期在全球范围内因地区而异.

ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate ld = LocalDate.now( z ) ;
int dayOfMonth = ld.getDayOfMonth();
Run Code Online (Sandbox Code Playgroud)

您也可以获得星期几.

DayOfWeek dow = ld.getDayOfWeek();
Run Code Online (Sandbox Code Playgroud)

关于java.time

java.time框架是建立在Java 8和更高版本.这些类取代麻烦的老传统日期时间类,如java.util.Date,Calendar,和SimpleDateFormat.

现在处于维护模式Joda-Time项目建议迁移到java.time类.

要了解更多信息,请参阅Oracle教程.并搜索Stack Overflow以获取许多示例和解释.规范是JSR 310.

使用符合JDBC 4.2或更高版本的JDBC驱动程序,您可以直接与数据库交换java.time对象.不需要字符串也不需要java.sql.*类.

从哪里获取java.time类?

ThreeTen-额外项目与其他类扩展java.time.该项目是未来可能添加到java.time的试验场.您可以在此比如找到一些有用的类Interval,YearWeek,YearQuarter,和更多.


乔达时间

更新: Joda-Time项目现在处于维护模式,并建议迁移到java.time类.此部分保留完整的历史记录.

使用Joda-Time 2.5库而不是臭名昭着的java.util.Date和.Calendar类.

时区对于确定日期至关重要.最好指定区域,而不是隐式依赖于JVM当前分配的默认时区.

DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
DateTime now = DateTime.now( zone ).withTimeAtStartOfDay();
int dayOfMonth = now.getDayOfMonth();
Run Code Online (Sandbox Code Playgroud)

或者使用与LocalDate没有时间部分的类相似的代码.