Lambda

Java8 时间与日期

/**
 * java8 时间与日期
 *
 */
public class TestLambda10 {

    /**
     * TemporalAdjuster:时间矫正器
     */
    @Test
    public void test1()  {
        //当日
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);

        //当月10号
        LocalDateTime ldt1 = now.withDayOfMonth(10);
        System.out.println(ldt1);

        //下个周日
        LocalDateTime ldt2 = now.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
        System.out.println(ldt2);

        //下个工作日
        LocalDateTime ldt4 = now.with((l) -> {
            LocalDateTime ldt3 = (LocalDateTime) l;
            DayOfWeek dayOfWeek = ldt3.getDayOfWeek();
            if (dayOfWeek.equals(DayOfWeek.FRIDAY)) {
                return ldt3.plusDays(3);
            } else if (dayOfWeek.equals(DayOfWeek.SATURDAY)) {
                return ldt3.plusDays(2);
            } else {
                return ldt3.plusDays(1);
            }
        });
        System.out.println(ldt4);

    }

    /**
     * DatetimeFormatter:格式化时间/日期
     */
    @Test
    public void test2()  {
        DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE_TIME;
        LocalDateTime now = LocalDateTime.now();
        String format = now.format(dtf);
        System.out.println(format);

        //自定义格式化
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String format1 = dtf2.format(now);
        System.out.println(format1);

        LocalDateTime parse = now.parse(format1, dtf2);
        System.out.println(parse);
    }

    /**
     * ZonedDate、ZonedTime、ZonedDateTime:时区处理
     */
    @Test
    public void test3() {
        //支持的时区
        Set<String> set = ZoneId.getAvailableZoneIds();
        set.forEach(System.out::println);

        //指定时区
        LocalDateTime ldt = LocalDateTime.now(ZoneId.of("Europe/Tallinn"));
        System.out.println(ldt);

        //带偏移量
        LocalDateTime ldt2 = LocalDateTime.now();
        ZonedDateTime zonedDateTime = ldt2.atZone(ZoneId.of("Asia/Shanghai"));
        System.out.println(zonedDateTime);
    }

}



下一篇 Java8 重复注解与类型注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值