• java 常用类库:时间类LocalDate;LocalTime;LocalDateTime;Calendar 类;Date ;


    LocalDate类

    LocalDate类代表不带时区的日期,列入2020-12-20。该类提供了静态的now()方法来获取当前的日期。这个类是线程安全的。

    LocalTime类

    代表不带时区的时间,例如10:20:30。该类提供了静态的now()方法来获取来获取当前的时间。这个类是线程安全的。

    LocalDateTime类

    LocalDateTime类代表不带时区的日期,时间,列入2020-12-20T10:15:15。该类提供了静态的now方法来获取对应的时间日期。这个类是线程安全的。

    代码示例:

    package com.zmd.common_class_libraries;
    
    import java.time.LocalDate;
    import java.time.LocalDateTime;
    import java.time.LocalTime;
    
    /**
     * @ClassName LocalDateTime
     * @projectName: object1
     * @author: Zhangmingda
     * @description: XXX
     * date: 2021/4/7.
     */
    public class LocalDateTimeExample {
        public static void main(String[] args) {
            //当前日期
            LocalDate localDate = LocalDate.now();
            System.out.println(localDate); //2021-04-07
            //指定日期:某年的第多少天
            LocalDate localDate1 = LocalDate.ofYearDay(2021,365);
            System.out.println(localDate1);//2021-12-31
            //获取指定年月日时间
            LocalDate localDate2 = LocalDate.of(2021,5,1);
            System.out.println(localDate2); //2021-05-01
    
            //当前时间
            LocalTime localTime = LocalTime.now();
            System.out.println(localTime);
            //指定时间
            localTime = LocalTime.of(22,0,0,0);
            System.out.println(localTime);
            //一天中的第多少秒
            localTime = LocalTime.ofSecondOfDay(86399);
            System.out.println(localTime); //23:59:59
    
            //日期时间LocalDateTime类:
            LocalDateTime localDateTime = LocalDateTime.now();
            System.out.println(localDateTime); //2021-04-07T22:22:16.560556800
            //时间加减,不改变对象自身,需要获取返回值
            LocalDateTime localDateTime1 = localDateTime.plusHours(5).plusMinutes(3);
            System.out.println(localDateTime1);  //2021-04-08T03:25:16.560556800
        }
    }

    Calendar 类

    实例创建方法Calendar.getInstance();

    实例方法

    getTime() 获取时间戳;

    add()时间计算;

    roll()时间计算超出范围走默认值;

    getActualMaximum; getActualMinimum获取最大最小值

    package com.zmd.common_class_libraries;
    
    import com.sun.jdi.PathSearchingVirtualMachine;
    
    import java.util.Calendar;
    
    /**
     * @ClassName CalendarExample
     * @projectName: object1
     * @author: Zhangmingda
     * @description: XXX
     * date: 2021/4/7.
     */
    public class CalendarExample {
        public static void main(String[] args) {
            //Calendar 类为抽象类,不可以new 需要使用静态方法getInstance返回实例
            Calendar calendar = Calendar.getInstance();
            //获取当前日期
            System.out.println(calendar.getTime());
            //日期计算,改变对象本身
            calendar.add(Calendar.DATE, -1);
            System.out.println(calendar.getTime());
            //获取时间对应的年、月、本月第几天、是当天第几个小时
            System.out.println(calendar.get(Calendar.YEAR));
            System.out.println(calendar.get(Calendar.MONTH));
            System.out.println(calendar.get(Calendar.DATE));
            System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
            System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
            //获取指定字段的最大值最小值:月份0~11
            System.out.println(calendar.getActualMaximum(Calendar.MONTH));
            System.out.println(calendar.getActualMinimum(Calendar.MONTH));
    
            //日期计算roll和add一样,但是超出当天或者当年月时间不会向上进位
            calendar.add(Calendar.DAY_OF_MONTH,26);
            System.out.println(calendar.getTime());
            
        }
    }

    set

    设置对应年月字段

            // set设置月份默认超出对应合理范围会自动进位
            calendar.set(Calendar.MONTH,20); //设置20月,会自动进位到次年
            System.out.println(calendar.getTime()); //Tue Sep 06 18:19:24 CST 2022

    关闭容错

            //配置不允许自动容错
            calendar.setLenient(false);
            calendar.set(Calendar.MONTH,20); //关闭进位,再设置20月,抛出异常 //Exception in thread "main" java.lang.IllegalArgumentException: MONTH
            System.out.println(calendar.getTime());

    Calendar set方法的延迟修改策略

    当执行set()方法设置时间对象更改某个字段后,并没有马上对原有实例修改,而是在下一次调用get、getTime、或者getTimeMillis方法的时候才做update更新修改后的时间。

    set(int field, int value)的方法是将指定的字段修改为value,它的实现原理,其实是将Calendar类的isSet变量对应的字段设置为了true,来存储某个字段是否被设置过。在用一个isTimeSet字段来存放我们的时间应不应该要修改?

     然后,我们再调用,get, getTime或者getTimeInMillis方法的时候,判断如果isTimeSet为false,会重新计算时间。

    这样做的好处是什么?比如,我们set了100次,之后,我们突然get了一次,这个时候,我们就仅仅在get的时候才计算了一下时间(1次)。如果不这样做,每次set的时候,就应该计算时间(100次),这样就节约了我们的资源

     

    ---------------------------------------------------------------

    Date类 已过时

    构造时间对象

    当前时间Date()

    指定时间Date(毫秒时间戳)

    方法:

    getTime() 时间对象的时间戳,默认传入的是System.currentTimeMillis()

    setTime(long time) 设置时间对象的时间戳

    before/after 判断传入的时间是否在本时间实例的前或后。

    package com.zmd.common_class_libraries;
    
    import java.util.Date;
    
    /**
     * @ClassName DateTimeExample
     * @projectName: object1
     * @author: Zhangmingda
     * @description: XXX
     * date: 2021/4/7.
     */
    public class DateTimeExample {
        public static void main(String[] args) {
            //当前时间戳毫秒数
            System.out.println(System.currentTimeMillis());
            //Date()获取当前时间
            Date nowDate = new Date();
            System.out.println(nowDate);
    
            //判断时间对象是否在指定时间之后
            Date when = new Date(System.currentTimeMillis() - 7200 * 1000);
            System.out.println(when);
            System.out.println(nowDate.after(when));;
            //判断时间对象是否在指定时间之前
            System.out.println(nowDate.before(when));;
            //通过时间对象获取时间对象的时间戳
            System.out.println(nowDate.getTime());
            //对比测试
            System.out.println(System.currentTimeMillis());
    
            //设置时间戳,比如设置24小时之后的
            nowDate.setTime(System.currentTimeMillis() + 24 * 3600 * 1000);
            System.out.println(nowDate);
        }
    }
  • 相关阅读:
    zhuan:Jmeter基础之---jmeter基础概念
    zhuan:JMeter基础之--元件的作用域与执行顺序
    zhuan:JMeter基础之—录制脚本
    zhuan:一种简单的数据库性能测试方法
    转:使用JMeter创建FTP测试计划
    转:JMeter基础之一 一个简单的性能测试
    性能学习
    [转]JMeter学习(一)工具简单介绍
    后端文件接收resd()和chunk的区别
    PyQt环境安装
  • 原文地址:https://www.cnblogs.com/zhangmingda/p/14629266.html
Copyright © 2020-2023  润新知