Java核心教程之常见时间日期的处理方法

 更新时间:2021年02月18日 09:11:28   作者:ruan_luqingnian  
这篇文章主要给大家介绍了关于Java核心教程之常见时间日期的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Java日期处理类Date详解

时间的基础知识

  • 时区:整个地球分为二十四时区,每个时区都有自己的本地时间。
  • 为了统一起见,使用一个统一的时间,称为全球标准时间(UTC,Universal Time Coordinated)。
  • TC与格林尼治平均时(GMT,Greenwich Mean Time,也翻译成:格林威治标准时间)差不多一样
  • CST(北京时间),北京时间,China standard Time,中国标准时间。在时区划分上,属东八区,比协调世界时早8小时,记为UTC+8。
  • 时间戳:自1970年1月1日(08:00:00GMT)至当前时间的总秒数,它也被称为Unix时间戳(unix Timestamp),广泛的运用在知识产权保护、合同签字、金融帐务、电子报价投标、股票交易等方面
  • 格式多种:2050-10-3110:11:11、2050/10/3110/10:10年、月、日、周几等

背景:程序代码中怎么表示时间呢?我需要获取当前时间怎么办

ava.util包提供了Date类来封装当前的日期和时间

构造函数

//当前时间
Date()
//从1970年1月1日起的毫秒数作为参数
Date(long millisec)

常见方法

//返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数。
long getTime()
//调用此方法的Date对象在指定日期之后返回true,否则返回false。
boolean after(Date date)
//调用此方法的Date对象在指定日期之前返回true,否则返回false。
boolean before(Date date)

新版JDK8之时间日期处理类

Java8通过发布新的Date-Time API(JSR310)来进一步加强对日期与时间的处理

新增了很多常见的api,如日期/时间的比较,加减,格式化等

包所在位置 java.time

核心类

LocalDate:不包含具体时间的日期。
LocalTime:不含日期的时间。
LocalDateTime:包含了日期及时间。

LocalDate常用API

 LocalDate today=LocalDate.now();
 system.out.print1n("今天日期:"+today);
 
//获取年,月,日,周几
system.out.print1n("现在是哪年:"+today.getYear());
system.out.print1n("现在是哪月:"+today.getMonth());
System.out.print1n("现在是哪月(数字):"+today.getMonthValue());
System.out.print1n("现在是几号:"+today.getDayofMonth());
system.out.print1n("现在是周几:"+today.getDayofweek());
//加减年份,加后返回的对象才是修改后的,旧的依旧是旧的LocalDate changeDate=today.plusYears(1);
system.out.print1n("加后是哪年:"+changeDate.getYear());
System.out.print1n("旧的是哪年:"+today.getYear());
//日期比较
system.out.print1n("isafter:"+changeDate.isAfter(today));
//getYear()int 获取当前日期的年份
//getMonth()Month获取当前日期的月份对象
//getMonthValue()int 获取当前日期是第几月
//getDayofweek()Dayofweek 表示该对象表示的日期是星期几
//getDayofMonth()int 表示该对象表示的日期是这个月第几天
//getDayofyear()int 表示该对象表示的日期是今年第几天
//withyear(int year)LocalDate 修改当前对象的年份
//withMonth(int month)LocalDate修改当前对象的月份
//withpayofMonth(int dayofMonth)LocalDate 修改当前对象在当月的日期
//plusYears(long yearsToAdd)Localpate 当前对象增加指定的年份数
//plusMonths(1ong monthsToAdd)LocalDate 当前对象增加指定的月份数
//plusweeks(1ong weeksToAdd)LocalDate 当前对象增加指定的周数
//plusDays(1ong daysToAdd)LocalDate 当前对象增加指定的天数
//minusYears(long yearsTosubtract)LocalDate 当前对象减去指定的年数
//minusMonths(1ong months ToSubtract)LocalDate当前对象减去注定的月数
//minusWeeks(long weeksTosubtract)LocalDate 当前对象减去指定的周数
//minusDays(1ong daysTosubtract)LocalDate当前对象减去指定的天数
//compareTo(ChronoLocalDate other)int 比较当前对象和other对象在时间上的大小,返回值如果为正,则当前对象时间较晚
//isBefore(ChronoLocalDate other)boolean比较当前对象日期是否在other对象日期之前
//isAfter(ChronoLocalDate other)boolean 比较当前对象日期是否在other对象日期之后
//isEqual(ChronoLocalDate other)boolean 比较两个日期对象是否相等

新版JDK8之时间日期格式化

为什么要时间日期做格式化

  • 程序打印,或者网页显示时间日期格式,用户有不同的需求,则需要根据一定的规则进行格式化

常用的占位符

  • y四位数年份
  • M月d日
  • h时在
  • m分
  • S毫秒

JDK8之后:引入线程安全的日期与时

LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd
HH:mm:ss");
String ldtStr = dtf.format(ldt);
System.out.println(ldtStr);

获取指定的日期时间对象LocalDate Time ldt=LocalDate Time.of(2020,11,11,8,20,30);System.out.println(ldt);

计算日期时间差 java.time.Duration

LocalDateTime today = LocalDateTime.now();
System.out.println(today);
LocalDateTime changeDate = LocalDateTime.of(2020,10,1,10,40,30);
System.out.println(changeDate);
Duration duration = Duration.between( today,changeDate);//第⼆二个参数减第⼀一
个参数
System.out.println(duration.toDays());//两个时间差的天数
System.out.println(duration.toHours());//两个时间差的小时数
System.out.println(duration.toMinutes());//两个时间差的分钟数
System.out.println(duration.toMillis());//两个时间差的毫秒数
System.out.println(duration.toNanos());//两个时间差的纳秒数

总结

到此这篇关于Java核心教程之常见时间日期的文章就介绍到这了,更多相关Java常见时间日期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring的Bean注入解析结果BeanDefinition详解

    Spring的Bean注入解析结果BeanDefinition详解

    这篇文章主要介绍了Spring的Bean注入解析结果BeanDefinition详解,BeanDefinition描述了一个bean实例,拥有属性值、构造参数值和具体实现的其他信息,其是一个bean的元数据,xml中配置的bean元素会被解析成BeanDefinition对象,需要的朋友可以参考下
    2023-12-12
  • Java代理模式的示例详解

    Java代理模式的示例详解

    代理模式(Proxy Parttern)为一个对象提供一个替身,来控制这个对象的访问,即通过代理对象来访问目标对象。本文将通过示例详细讲解一下这个模式,需要的可以参考一下
    2022-02-02
  • IDEA强制清除Maven缓存的实现示例

    IDEA强制清除Maven缓存的实现示例

    清除项目缓存是一个常见的操作,本文主要介绍了IDEA强制清除Maven缓存的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • spring profile 多环境配置管理详解

    spring profile 多环境配置管理详解

    这篇文章主要介绍了 spring profile 多环境配置管理详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • Java IO流之字符流的使用详解

    Java IO流之字符流的使用详解

    这篇文章主要围绕Java中的字符流进行介绍,包括字符输入流、字符输出流以及处理流异常的几种方式。文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-08-08
  • Java web开发环境的搭建超完整步骤

    Java web开发环境的搭建超完整步骤

    这篇文章主要介绍了如何安装和配置IDEA 2020.1.1 X64版本软件,包括创建Java Web项目、配置Tomcat、部署Tomcat API以及创建和配置Servlet,通过这些步骤,新手可以快速搭建起Javaweb开发环境,需要的朋友可以参考下
    2024-11-11
  • Java窗口精细全方位讲解

    Java窗口精细全方位讲解

    这篇文章呢,将会系统的精细的教会铁铁们如何自己写一个完整的窗口;看完之后窗口稳拿下!!!所以呢由于详细,知识点多,可能有点长,铁铁们慢慢仔细阅读吧;文章写的还是一如既往快乐的,哈哈哈
    2021-08-08
  • List集合对象中按照不同属性大小排序的实例

    List集合对象中按照不同属性大小排序的实例

    下面小编就为大家带来一篇List集合对象中按照不同属性大小排序的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 设计模式之中介者模式_动力节点Java学院整理

    设计模式之中介者模式_动力节点Java学院整理

    这篇文章主要为大家详细介绍了设计模式之中介者模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • java使用静态关键字实现单例模式

    java使用静态关键字实现单例模式

    这篇文章主要为大家详细介绍了java使用静态关键字实现单例模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04

最新评论