首页 > 编程语言 >java Date和LocalDate的使用

java Date和LocalDate的使用

时间:2022-09-23 23:44:58浏览次数:47  
标签:java System date hireDay Date Calendar LocalDate

一、关于LocalDate的简单实用

1、获取本地的时间使用 LocalDate date = LocalDate.now();  LocalDate支持时间的加减法:可以对月份,年或者日进行加减法。比如计算本月的第一天可以如下操作:

        LocalDate date = LocalDate.now();
        int today = date.getDayOfMonth();
        date = date.minusDays(today - 1);

如上最终date显示的就是本月的第一天。创建当前的日期 -》获取今天是本月的第几天 -》然后将日期减去(today - 1) 则得到本月的第一天

如下是日历的一个打印函数,作为LocalDate的一个简单的例子的学习

    private static void printDate() {
        LocalDate date = LocalDate.now();
        int today = date.getDayOfMonth();
        int month = date.getMonthValue();
        date = date.minusDays(today - 1);

        System.out.println("Mon Tue Wed Thu Fri Sat Sun");
        DayOfWeek dayOfWeek = date.getDayOfWeek();
        for (int i = 1; i < dayOfWeek.getValue(); ++i) {
            System.out.print("    ");
        }
        while (date.getMonthValue() == month) {
            System.out.printf("%3d", date.getDayOfMonth());
            if (date.getDayOfMonth() == today) {
                System.out.print("*");
            } else {
                System.out.print(" ");
            }
            date = date.plusDays(1);
            if (date.getDayOfWeek().getValue() == 1) {
                System.out.println();
            }
        }
    }
View Code

 

二、关于Date的简单使用

1、Date的获取当前时间的方式不同,LocalDate使用.now的方式进行获取但是Date则使用:Date now = new Date();

2、如果要指定确定的时间则可以通过SimpleDateFormat这个类进行转换

        String dateString = String.format("%04d-%02d-%02d", year, month, day);
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            hireDay = dateFormat.parse(dateString);
        } catch (ParseException e) {
            e.printStackTrace();
        }

这里先将指定的年月日转换为标准的字符串格式,然后通过SimpleDateFormat.parse进行格式转换为Date类型的数据;那么最终打印出的hireDay 可能是如下所示的时间:hireDay=Sun Jan 01 00:00:00 CST 1989

另外,这里使用try-catch的方式是因为parse可能会发生异常,所以调用parse的时候系统强制要求增加该异常处理函数

3、如果将Date格式的时间转换为数值的年月日,可以通过Calendar函数进行转换

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(hireDay);
        System.out.println("year:" + calendar.get(Calendar.YEAR) + " month:" + calendar.get(Calendar.MONTH) + " day:" + calendar.get(Calendar.DAY_OF_MONTH));

通过调用Calendar.getInstance(); 返回对应的Calendar对象;该对象会设置默认的时区(本地的时区)还有当前的时间;当然也可以在getInstance中指定时区等参数

然后设置Date类型的时间,最后可以通过获取对应的年月日了。

如上的一个可能输出是:year:1989 month:0 day:1;注意这里month是从0开始

4、当我们在设置完成hireDay之后,获取这个hireDay的时候记得使用clone的方式,否则会出现hireDay在外部被更改的情况

    public Date getHireDay() {
        return (Date) hireDay.clone();
    }

 

标签:java,System,date,hireDay,Date,Calendar,LocalDate
From: https://www.cnblogs.com/czwlinux/p/16724675.html

相关文章

  • 温故而知新——Java面向对象一
    面向对象综合联系1.文字版格斗游戏简单版:有趣版(使用souf,即System.out.printf("%s","xxx"),类似c语音的输出语句,本身没有换行功能,可用sout):必备的一些描述设置人物面......
  • Java: Template Method Patterns
     /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*模板方法模式TemplateMethodPatterns*历史版本:JDK14.02*2022-09-12创建者geovindu*......
  • javaSE基础-泛型
    泛型为什么要有泛型泛型:相当于标签集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在jdk1.5之前只能把元素类型设计为Object,在jdk1.5......
  • Go 和 Java 程序退出机制的区别
    前情提要写这篇随笔的原因是最近在写mit6.824的lab1,实验中使用rpc作为coordinator和worker的通信方式。因为之前一直使用Java,所以就想对比一下两种语言的退出机......
  • java学习第五天笔记-方法使用114-带返回值的参数3
       ......
  • java学习第五天笔记-方法使用115-方法小结
        ......
  • Java基础Day4-Java方法
    一、方法的定义Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段。方法包括一个方法头和一个方法体。修饰符返回值类型方法名(参数类型参数名){......
  • java中static分析
    在类中,使用static修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。静态成员不依赖于......
  • java自定义导出Excel格式
    使用apache的poi自定义格式导出Excelpom.xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17......
  • JAVA + LR实现apache流媒体的性能测试
    一个视频点播系统,使用apache实现的流媒体服务器。其实准确的说叫做伪流(HTTPPseudo-Streaming),基本原理和概念自行了解吧。让我简单的描述就是仍然是HTTP下载,播放器播放本地......