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

网友投稿 233 2023-02-01

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 Timehttp://stamp),广泛的运用在知识产权保护、合同签字、金融帐务、电子报价投标、股票交易等方面

格式多种: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 aRcYVkJjMTime.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);

Durationhttp:// 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());//两个时间差的纳秒数

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:二维码个人名片免费api(在线做二维码名片)
下一篇:IDEA取消SVN关联,再重新分享项目的操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~