java8新特性-日期、时间

下面仅列举常用的日期、时间,像不常用的时区、历法什么的就没弄了。

public class TimeTest extends BaseTest {

    @Test

    public void dateTest() {
        //日期
        //各种静态方法都可以获取
        //LocalDate date = LocalDate.of(2018, 4, 11);
        //LocalDate date = LocalDate.parse("2018-04-11");
        LocalDate date = LocalDate.now();
        int year = date.getYear();
        System.out.println(year);
        Month month = date.getMonth();
        System.out.println(month);
        int day = date.getDayOfMonth();
        System.out.println(day);
        DayOfWeek dow = date.getDayOfWeek();
        System.out.println(dow);
        int len = date.lengthOfMonth();
        System.out.println(len);
        boolean leap = date.isLeapYear();
        System.out.println(leap);
        //通过TemporalField获取date数据
        int year1 = date.get(ChronoField.YEAR);
        System.out.println(year1);
        //这里的月份就是正常的月份喽,而不需要+1表示
        int month1 = date.get(ChronoField.MONTH_OF_YEAR);
        System.out.println(month1);
        int day1 = date.get(ChronoField.DAY_OF_MONTH);
        System.out.println(day1);
        //日期转换为某格式
        System.out.println(date.format(DateTimeFormatter.BASIC_ISO_DATE));
        //字符串转日期
        // LocalDate.parse("20180411",DateTimeFormatter.ofPattern("dd/MM/yyyy"));
        LocalDate parseDate = LocalDate.parse("20180411",
                DateTimeFormatter.BASIC_ISO_DATE);
        //修改年份,同理也可以修改 月、日
        LocalDate date1 = date.withYear(2017);
        System.out.println(date1.getYear());
        //新增年份
        LocalDate date2 = date.plusYears(1);
        System.out.println(date2.getYear());
        //下一个周六日期
        LocalDate date3 = date.with(nextOrSame(DayOfWeek.SUNDAY));
        System.out.println(date3.getDayOfMonth());
        //该月最后一天
        LocalDate date4 = date.with(lastDayOfMonth());
        System.out.println(date4.getDayOfMonth());
//    dayOfWeekInMonth 创建一个新的日期,它的值为同一个月中每一周的第几天
//    firstDayOfMonth 创建一个新的日期,它的值为当月的第一天
//    firstDayOfNextMonth 创建一个新的日期,它的值为下月的第一天
//    firstDayOfNextYear 创建一个新的日期,它的值为明年的第一天
//    firstDayOfYear 创建一个新的日期,它的值为当年的第一天
//    firstInMonth 创建一个新的日期,它的值为同一个月中,第一个符合星期几要求的值
//    lastDayOfMonth 创建一个新的日期,它的值为当月的最后一天
//    lastDayOfNextMonth 创建一个新的日期,它的值为下月的最后一天
//    lastDayOfNextYear 创建一个新的日期,它的值为明年的最后一天
//    lastDayOfYear 创建一个新的日期,它的值为今年的最后一天
//    lastInMonth 创建一个新的日期,它的值为同一个月中,最后一个符合星期几要求的值
//    next/previous
//    创建一个新的日期,并将其值设定为日期调整后或者调整前,
//    第一个符合指定星期几要求的日期
//    nextOrSame/previousOrSame
//    创建一个新的日期,并将其值设定为日期调整后或者调整前,第一个符合指定星
//    期几要求的日期,如果该日期已经符合要求,直接返回该对象
    }

    @Test
    public void timeTest() {
        //时间 时分秒-纳秒
        //各种静态方法都可以获取
        //LocalTime time = LocalTime.of(13, 45, 20);
        //LocalTime time = LocalTime.parse("13:45:20");
        LocalTime time = LocalTime.now();

        int hour = time.getHour();
        System.out.println(hour);
        int minute = time.getMinute();
        System.out.println(minute);
        int second = time.getSecond();
        System.out.println(second);
        int na = time.getNano();
        System.out.println(na);
    }

    @Test
    public void dateTimeTest() {
        //完整的日期和时间,都可以通过LocalDate和LocalTime转换而来
        //date.atTime(13, 45, 20);
        //time.atDate(date);
        //可以从中获取完整的年月日、时分秒
        LocalDateTime dateTime = LocalDateTime.now();


    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值