美文网首页
Java8中的时间和日期

Java8中的时间和日期

作者: Tauruse | 来源:发表于2016-11-29 14:58 被阅读83次

    参考文章:
    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天是几月几号星期几的问题,直接一行代码甩给他

    Paste_Image.png

    相关文章

      网友评论

          本文标题:Java8中的时间和日期

          本文链接:https://www.haomeiwen.com/subject/eygapttx.html