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常见时间日期内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
相关文章
- 这篇文章主要介绍了如何利用java语言实现经典《复杂迷宫》游戏,文中采用了swing技术进行了界面化处理,感兴趣的小伙伴可以动手试一试...2022-02-01
java 运行报错has been compiled by a more recent version of the Java Runtime
java 运行报错has been compiled by a more recent version of the Java Runtime (class file version 54.0)...2021-04-01- 这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
- 这篇文章主要介绍了Java如何发起http请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
- 说起C#和Java这两门语言(语法,数据类型 等),个人以为,大概有90%以上的相似,甚至可以认为几乎一样。但是在工作中,我也发现了一些细微的差别...2020-06-25
- 这篇文章主要介绍了.NET/C# 使用Stopwatch测量运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
mysql中获取一天、一周、一月时间数据的各种sql语句写法
创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31- 这篇文章主要介绍了解决Java处理HTTP请求超时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
- 这篇文章主要介绍了java 判断两个时间段是否重叠的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
- 这篇文章主要介绍了超简洁java实现双色球若干注随机号码生成(实例代码),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-02
java 画pdf用itext调整表格宽度、自定义各个列宽的方法
这篇文章主要介绍了java 画pdf用itext调整表格宽度、自定义各个列宽的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-31- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
- 本文实例讲述了php计算两个日期相差天数的方法。...2015-03-15
- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
Java使用ScriptEngine动态执行代码(附Java几种动态执行代码比较)
这篇文章主要介绍了Java使用ScriptEngine动态执行代码,并且分享Java几种动态执行代码比较,需要的朋友可以参考下...2021-04-15- 这篇文章主要介绍了Java开发实现人机猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-08-03
- 这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
- 常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25