java中日期

Date birthday = new Date();

下面的表达式Local Date.now()会构造一个新对象,表示构造这个对象时的日期。可以提供年、 月和日来构造对应一个特定日期的对象:

LocalDate.of(1999, 12, 31)

当然, 通常都希望将构造的对象保存在一个对象变量中

LocalDate newYearsEve = Local Date.of(1999, 12, 31);

一旦有 了一个 LocalDate 对象, 可以用方法 getYear、 getMonthValue 和 getDayOfMonth得到年、月和日:

int year = newYearsEve.getYearO; // 1999

int month = newYearsEve.getMonthValueO; // 12

int day = newYearsEve.getDayOfMonth(); // 31

看起来这似乎没有多大的意义, 因为这正是构造对象时使用的那些值。不过,有时可能某个日期是计算得到的,你希望调用这些方法来得到更多信息。例如, plusDays 方法会得到一个新的 LocalDate, 如果把应用这个方法的对象称为当前对象,这个新日期对象则是距当前对象指定天数的一个新日期:

LocalDate aThousandDaysLater = newYearsEve.piusDays(1000):

year = aThousandDaysLater.getYearO;// 2002

month = aThousandDaysLater.getMonthValueO; // 09

day = aThousandDaysLater.getDayOfMonth(); // 26

LocalDate 类封装了实例域来维护所设置的日期。如果不查看源代码, 就不可能知道类内部的日期表示。

而Cregori anCalendar someDay = new CregorianCalendar(1999, 11, 31);II Odd feature of that cl ass: month numbers go from 0 to 11

someDay.add(Calendar.DAY_0F_M0NTH, 1000);与 LocalDate.plusDays 方法不同,GregorianCalendar.add 方法是一个更改器方法 ( mutatormethod ) 调用这个方法后,someDay 对象的状态会改变。可以如下査看新状态:

year = someDay.get(Calendar.YEAR); // 2002

month = someDay.get(Calendar.MONTH)+ 1; // 09

day = someDay.get(Ca1endar.DAY_0F_M0NTH); // 26

正是因为这个原因,我们将变量命名为 someDay 而不是 newYearsEve 调用这个更改器方法之后,它不再是新年前夜。

Local Date date = LocalDate.now ();

下面获得当前的月和日。

int month = date.getMonthValue ();

int today = date.getDayOfMonth();

然后, 将 date 设置为这个月的第一天, 并得到这一天为星期几。

date = date.minusDays (today - 1); // Set to start of month

DayOfWeek weekday = date.getDayOfWeek();

int value = weekday .getValue(); // 1 = Monday , .. . 7 = Sunday

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值