Java8 新时间API使用示例

本文深入探讨了Java中新的日期时间API使用方法,包括LocalDate、LocalDateTime等类的实例化,日期时间的获取、调整及比较。演示了如何利用TemporalAdjusters、ChronoUnit进行日期调整和计算,以及Duration和Period的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


import org.junit.Assert;
import org.junit.Test;

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Period;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;

public class DateTimeTest {
    /**
     * of:静态工厂方法。
     * parse:静态工厂方法,关注于解析。
     * get:获取某些东西的值。
     * is:检查某些东西的是否是true。
     * with:不可变的setter等价物。
     * plus:加一些量到某个对象。
     * minus:从某个对象减去一些量。
     * to:转换到另一个类型。
     * at:把这个对象与另一个对象组合起来,例如:date.atTime(time)。
     */

    @Test
    public void testLocalDate() {
        // 实例化时间
        LocalDate localDate = LocalDate.of(2018, 11, 30);
        Assert.assertFalse(localDate.isLeapYear());

        // 获得天、星期
        // 月也可通过这种方式获得
        LocalDate.now().getDayOfMonth();
        LocalDate.now().getDayOfWeek().getLong(ChronoField.DAY_OF_WEEK);

        // 获得当前月 月初,月末时间
        localDate = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());
        LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).getMonth().getLong(ChronoField.MONTH_OF_YEAR);

        // 看下月末是如何处理跨界的
        // 同时也是调整 月份
        System.out.println(localDate.withMonth(2));

        // 获得当日开始 当日结束
        LocalDateTime localDate2 = LocalDateTime.now().with(ChronoField.SECOND_OF_DAY, 0);
        System.out.println(localDate2.minus(1, ChronoUnit.SECONDS));

        // 获得昨日时间
        // 获得上月时间也是一样的操作
        System.out.println(LocalDateTime.now().minus(Period.ofDays(1)));

        // 前一个小时
        System.out.println(LocalDateTime.now().minus(Duration.ofHours(1)));

    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值