java相关日期函数

薄洪涛2年前JAVA2012

JDK7

Data

// 1.创建当前时间
Date d1 = new Date();
System.out.println(d1);

// 2.指定时间
Date d2 = new Date(1000L);
System.out.println(d2);

// 3.修改时间
d2.setTime(2000L);
System.out.println(d2);

// 4.获取毫秒值
long time = d2.getTime();
System.out.println(time);


SimpleDateFormat

image.png

image.png

Date d2 = new Date(1000L);
System.out.println(d2);
// 无参构造
SimpleDateFormat sdf = new SimpleDateFormat();
String formatD2 = sdf.format(d2);
// 有参数构造,传入时间格式
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatD22 = sdfFormat.format(d2);
System.out.println(formatD22);
// 解析
Date date2 = sdfFormat.parse(formatD22);
System.out.println(date2);

Calendar

代表系统当前时间的日历对象,可以单独设置,获取时间中的年月日

  1. Calendar 是一个抽象类,不可以直接创建对象,底层是根据不同的时区来获取不能的日历对象,默认表示当前时间

  2. 获取月份:范围0~11,0代表1月

  3. 获取星期: 1代表周日  2代表周一   依次类推

  4. get() 取字段中某字段信息

Calendar calendar = Calendar.getInstance();
// 纪元
System.out.println(calendar.get(0));
// 年
System.out.println(calendar.get(1));
// 月
System.out.println(calendar.get(2));
// 一年中第几周
System.out.println(calendar.get(3));
// 一月中第几周
System.out.println(calendar.get(5));
// 一月中的第几天
System.out.println(calendar.get(6));

为了方便记忆,使用常量
// 纪元
System.out.println(calendar.get(0));
// 年
System.out.println(calendar.get(Calendar.YEAR));
// 月
System.out.println(calendar.get(Calendar.MONTH));
// 一年中第几周
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
// 一月中第几周
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));
// 一月中的第几天
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

image.png

Jdk8

JDK7 代码太麻烦,而且多线程不安全

Instant

时间戳

// 获取当前时间的Instant对象(标准时间)
Instant now = Instant.now();
System.out.println(now);
// 指定时区
ZonedDateTime nw = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
System.out.println(nw);
// 昨天
Instant yesterday = Instant.now().minusSeconds(86400);
System.out.println(yesterday);
// 比较
System.out.println(now.isAfter(yesterday));

DateTimeFormatter

用于时间的格式化和解析

LocalDate

LocalTime

LocalDateTime


相关文章

RabbitMq交换机类型

RabbitMq交换机类型

direct路由键和队列名完全匹配,才可以消费如果绑定时设置了routing key为”abc”,那么客户端提交的消息,只有设置了key为”abc”的才会投递到队列fanout还有一种不需要key的,...

Intellij IDEA实现热部署

Intellij IDEA实现热部署

每次修改代码都需要重新编译,然后重启Tomcat,比较麻烦,我们可以通过Jrebel实现项目的热部署,从而不需要重启Tomcat首先安装plugin如果在线安装时间比较长,可以选择自己下载包(点我自己...

谈谈你对IOC的理解

 ioc容器实际上就是个map(key,value),⾥⾯存的是各种对象(在xml⾥配置的bean节点、 @repository、@service、@controller、@componen...

Springboot+Kotlin的搭建

Springboot+Kotlin的搭建

不少公司觉得php的性能较低,于是采用java做逻辑处理,php做表现层的做法,个人觉得对于业务量比较复杂,安全性要求较高的项目,可以采用此类做法;于是我学着搭建了一个基于spring boot的接口...

基于dubbo改造现有http调用项目

使用zooker作为注册中心,将现有通过http调用的项目改造成dubbo调用公共项目规定接口public interface OrderService {  ...

spring AOP概念及应用场景

spring AOP概念及应用场景

概念面向切面编程,通过预编译和运行期间动态代理实现在不修改源代码的情况下给程序动态统一添加功能的技术思想就是把很多类中对象中横切问题点,从业务逻辑中分离出来,达到解耦的目的,增加代码的重用性,提高开发...

评论列表

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。