java 常用类库:时间类LocalDate;LocalTime;LocalDateTime;Calendar 类;Date ;
LocalDate类
LocalTime类
LocalDateTime类
代码示例:
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更新修改后的时间。

然后,我们再调用,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);
}
}
java 常用类库:时间类LocalDate;LocalTime;LocalDateTime;Calendar 类;Date ;的更多相关文章
- Java时间处理类LocalDate和LocalDateTime常用方法
Java时间处理类LocalDate和LocalDateTime常用方法 https://blog.csdn.net/weixin_42579074/article/details/93721757
- JAVA(三)JAVA常用类库/JAVA IO
成鹏致远 | lcw.cnblog.com |2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不 ...
- Java 常用类库与技巧【笔记】
Java 常用类库与技巧[笔记] Java异常体系 Java异常相关知识 Java在其创立的时候就设置了比较有效的处理机制,其异常处理机制主要回答了三个问题:what,where,why what表示 ...
- Google的Java常用类库 Guava资料
java的人应该都知道Apache commons的java常用类库吧,这个Guava和commons一样,封装出一套比jdk本身提供的常用类库强大.既然有了这个这么强大的类库,我们就没必要重复造轮子 ...
- java8时间工具类Localdate、LocaldateTime
优点: 1.方便. Date 只能是日期加时间的格式,而 LocalDate .LocalTime.LocalDateTime 分别代表日期,时间,日期+时间,非常灵活.再就是后者在日期计算及格式化方 ...
- Java常用类库(一) : Object 和日期类的简单使用
顶哥说:Java是世界的,但项目不是! Java有非常多的类库,而我们不会也不用都去学习,毕竟你也仅仅掌握了你手机20%的功能却足够你使用,不是吗? 今天介绍以下类: l Object l Dat ...
- Java常用API——时间类
前言:Java.util.*工具包中,包含了集合框架,旧集合类,事件模型,日期和时间设施,国际化和其他使用程序类 (字符串.随机数生成器和位数组) 一.日期类Date 1.概述 Date是一个薄包装类 ...
- java 常用类库:操作系统System类,运行时环境Runtime
System类: System 类代表Java程序的运行平台,程序不能创建System类的对象, System类提供了一些类变量和类方法,允许直接通过 System 类来调用这些类变量和类方法. Sy ...
- JAVA常用类库简介(转)
Java编程语言中为方便学习者学习,编制了许多类,这些类已经经过测试,都是我们编程的基础.如果不利用这些已存在的类,我们的编程工作将变得异常复杂并且效率低下.所以我们应尽可能多的掌握Java基本类库的 ...
随机推荐
- MYSQL免安装
MYSQL免安装 本文使用mysql 8.0.22进行演示 一.MYSQL 下载 [x] 官网下载:地址:https://dev.mysql.com/downloads/mysql/ [x] 百度云盘 ...
- Codeforces 582D - Number of Binominal Coefficients(Kummer 定理+数位 dp)
Codeforces 题目传送门 & 洛谷题目传送门 一道数论与数位 dp 结合的神题 %%% 首先在做这道题之前你需要知道一个定理:对于质数 \(p\) 及 \(n,k\),最大的满足 \( ...
- Git常用操作(二)
仓库拉取 git clone XXX 修改仓库链接 $ git config -l # 显示coding列表 $ git config --get remote.origin.url # 返回orig ...
- 自助分析工具Power BI的简介和应用
作为一名资深的IT技术人,特别喜欢学习和尝试新技术,也勇于接受挑战,勇于创新,不仅能发现问题,更要解决实际的疑难杂症,闲暇时光也乐于分享一些技术干货.记得2017年的时候,华章出版社的编辑通过网上找到 ...
- C++ and OO Num. Comp. Sci. Eng. - Part 1.
本文参考自 <C++ and Object-Oriented Numeric Computing for Scientists and Engineers>. 序言 书中主要讨论的问题是面 ...
- 一个好用的快速安装lnmp环境包lnmp1-6
一个好用的快速安装lnmp环境包lnmp1-6 地址:https://lnmp.org/tag/lnmp1-6/
- git创建项目,代码仓库
1.首先在服务端远程创建仓库 mkdir project.git cd project.git git --bare init 2.在本地创建项目推送到远程服务端仓库 mkdir myproj ...
- C/C++运行时确定字节顺序
字节顺序(英文:Endianness),多字节数据在内存中的存储顺序: 1.对于特定数据,内存空间有起始地址.结束地址: 2.对于数据本身,存在高位字节.地位字节:例如 int data = 0x01 ...
- 虚拟节点轻松应对 LOL S11 百万并发流量——腾竞体育的弹性容器实践
作者 刘如梦,腾竞体育研发工程师,擅长高并发.微服务治理.DevOps,主要负责电竞服务平台架构设计和基础设施建设. 詹雪娇,腾讯云弹性容器服务EKS产品经理,主要负责 EKS 虚拟节点.容器实例相关 ...
- 一次“不负责任”的 K8s 网络故障排查经验分享
作者 | 骆冰利 来源 | Erda 公众号 某天晚上,客户碰到了这样的问题:K8s 集群一直扩容失败,所有节点都无法正常加入集群.在经过多番折腾无解后,客户将问题反馈到我们这里,希望得到技术支持 ...