Java8中的时间和日期

参考文章:
Java中的时间和日期(下)
stackoverflow

今天在上面的博客中学到了java8的LocalDate类,之前的一个项目中有需求要通过时间返回日期,星期,而且月份和星期都要是英文,有的时候还要求是缩写,现在看来用这个类实在是太适合不过了。

但是之前的项目中,数据库存放的都是Date.getTime()这样的毫秒数,在网上搜索了一番之后,发现可以将Date转换承LocalDate对象:

Date input = new Date();
LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

所以直接一个方法就搞定了:

public static LocalDate ConvertDateToLocalDate(Date date) {
        return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    }

随便来几行代码感受一下:

LocalDate date = LocalDate.now();
        System.out.println("LocalDate.now:"+date);
        System.out.println("当前月份:"+date.getMonth());
        
        //加减天,月,年,周
        System.out.println("当前日期加三十天:"+date.plusDays(30));
        System.out.println("当前日期减去30天:"+date.minusDays(30));
        
        System.out.println("当前日期是星期几:"+date.getDayOfWeek());
        System.out.println("当前日期是星期几的缩写:"
                +date.getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.ENGLISH));
        System.out.println("当前年份:"+date.getYear());
        
        //LocalDate和Date的转换
        System.out.println("LocalDate和Date的相互转换:" +ConvertDateToLocalDate(new Date()));

输出结果:

LocalDate.now:2016-11-29
当前月份:NOVEMBER
当前日期加三十天:2016-12-29
当前日期减去30天:2016-10-30
当前日期是星期几:TUESDAY
当前日期是星期几的缩写:Tue
当前年份:2016
LocalDate和Date的相互转换:2016-11-29

以后如果有人再问你今天的前3000天后3000天是几月几号星期几的问题,直接一行代码甩给他

Java8中的时间和日期_第1张图片
Paste_Image.png

你可能感兴趣的:(Java8中的时间和日期)