《Java面向对象》课件-5.2 日期时间类_第1页
《Java面向对象》课件-5.2 日期时间类_第2页
《Java面向对象》课件-5.2 日期时间类_第3页
《Java面向对象》课件-5.2 日期时间类_第4页
《Java面向对象》课件-5.2 日期时间类_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块五Java常用API日期时间类任务二日期时间类对许多应用程序来说,对日期和时间进行操作是必不可少的。为了处理日期和时间,Java提供了多个内置的日期和时间类,使用这些日期和时间类,可以轻松地进行日期和时间的计算、比较和格式化操作。下面对Java中常用的日期时间类进行讲解。学习目标掌握LocalDate类和LocalTime类,能够使用LocalDate类和LocalTime类操作日期和时间

先定一个小目标!掌握LocalDateTime类,能够使用LocalDateTime类操作日期和时间掌握DateTimeFormatter类的使用,能够使用DateTimeFormatter类对日期和时间进行格式化熟悉Duration类和Period类,能够使用Duration类和Period类处理时间差LocalDate类和LocalTime类LocalDate类和LocalTime类都是JDK8引入的日期时间类。其中,LocalDate表示不带时区的日期,其内部包含了日期的年、月、日三个部分。LocalTime表示不带日期的时间,其内部包含了单一时间的时、分、秒以及纳秒四个部分。LocalDate类和LocalTime类1.LocalDate类LocalDate类的作用:它不存储和表示时间或时区,只是描述日期。LocalDate所表示的日期包括年、月和日3部分,如2022-07-01表示2022年7月1日。LocalDate类和LocalTime类1.LocalDate类LocalDate类提供了获取日期对象、获取日期的年月日、格式化日期、增减年月日等一系列方法。方法声明功能描述staticLocalDateof(intyear,Monthmonth,intdayOfMonth)根据指定的年、月和日获取LocalDate对象,其中year表示年份,month表示月份,dayOfMonth表示一个月中的哪一天staticLocalDatenow()从默认时区的系统时钟中获取当前日期对应的LocalDate对象intgetYear()获取日期的年份字段MonthgetMonth()使用Month枚举获取月份字段intgetMonthValue()获取当前日期的月份intgetDayOfMonth()获取当天未当月的第几天LocalDate类和LocalTime类1.LocalDate类接上页表格。方法声明功能描述Stringformat(DateTimeFormatter

formatter)使用指定的格式化程序格式化此日期booleanisBefore(ChronoLocalDate

other)检查当前日期是否在指定日期之前booleanisAfter(ChronoLocalDate

other)检查当前日期是否在指定日期之后booleanisEqual(ChronoLocalDate

other)检查当前日期是否等于指定的日期booleanisLeapYear()根据ISO预测日历系统规则,检查指定日期是否是闰年staticLocalDateparse(CharSequencetext)从一个文本字符串中获取一个

LocalDate的实例static

LocalDateparse(CharSequencetext,DateTimeFormatterformatter)使用特定格式格式化

LocalDate从文本字符串获取的

LocalDate实例LocalDate类和LocalTime类1.LocalDate类接上页表格。方法声明功能描述LocalDateplusYears(longyearsToAdd)增加指定年份LocalDateplusMonths(longmonthsToAdd)增加指定月份LocalDateplusDays(long

daysToAdd)增加指定天数LocalDateminusYears(long

yearsToSubtract)减少指定年份LocalDateminusMonths(long

monthsToSubtract)减少指定月份LocalDateminusDays(long

daysToSubtract)减少指定天数LocalDatewithYear(intyear)根据参数year修改日期的年份,并返回修改后的日期LocalDatewithMonth(intmonth)根据参数month修改日期的月份,并返回修改后的日期LocalDatewithDayOfMonth(intdayOfMonth)根据参数dayOfMonth修改日期的天数,并返回修改后的日期LocalDate类和LocalTime类1.LocalDate类下面通过一个案例演示LocalDate类一系列常用方法的使用。Example11.java源代码LocalDate类和LocalTime类1.LocalDate类案例的运行结果如下图所示。5.4.1LocalDate类和LocalTime类2.LocalTime类LocalTime类的作用:用来表示不带时区的时间,只对时分秒纳秒做出处理,默认格式为时:分:秒.纳秒,例如,11:23:40.051942200。与LocalDate类一样,LocalTime类不能代表时间线上的即时信息,只是描述时间。LocalDate类和LocalTime类2.LocalTime类LocalTime类中提供了获取时间对象的方法,以及增减时分秒等常用方法,这些方法与LocalDate类中的方法用法类似。常用方法如下表所示。方法声明功能描述staticLocalTimeof(inthour,intminute,intsecond,intnanoOfSecond)创建一个指定时、分、秒和纳秒的

LocalTime

对象staticLocalTimenow()从默认时区的系统时钟中获取当前时间对应的LocalTime对象intgetHour()获取时间的小时部分intgetMinute()获取时间的分钟部分intgetSecond()获取时间的秒部分LocalDate类和LocalTime类2.LocalTime类接上页表格。方法声明功能描述staticLocalTimeparse(CharSequencetext,DateTimeFormatterformatter)用于将字符串表示的时间按照指定的格式解析为

LocalTime

对象booleanisAfter(LocalTimeother)判断当前时间是否在指定时间之后booleanisBefore(LocalTimeother)判断当前时间是否在指定时间之前Stringformat(DateTimeFormatterformatter)将时间格式化为指定的字符串表示形式LocalTimewithNano(intnanoOfSecond)创建一个具有指定纳秒数的LocalTime实例LocalDate类和LocalTime类2.LocalTime类下面通过一个案例学习LocalTime类的方法。Example12.java源代码LocalDate类和LocalTime类2.LocalTime类案例的运行效果如下图所示。LocalDateTime类LocalDateTime类是LocalDate类与LocalTime类的综合,表示不带时区的日期和时间,默认的日期时间格式是年-月-日T时:分:秒.纳秒,如2023-11-06T13:43:25.774。LocalDateTime类包含了LocalDate类与LocalTime类的所有方法,并且LocalDateTime类还额外提供了日期时间的转换方法LocalDateTime类案例演示下面通过一个案例学习LocalDateTime类的日期时间转换方法。Example13.java源代码LocalDateTime类案例演示案例的运行结果如下图所示。DateTimeFormatter类使用LocalDate类、LocalTime类、LocalDateTime时,获取到的日期或者时间都是以默认的格式,如果想要将日期或者时间设置为其他指定的格式,可以使用格式化类。JDK8在java.time.format包提供了一个DateTimeFormatter类,该类是一个格式化类,它不仅可以将日期、时间对象格式化成字符串,还能将特定格式的字符串解析成日期、时间对象。DateTimeFormatter类要使用DateTimeFormatter进行格式化或者解析,就必须先获得DateTimeFormatter对象。获取DateTimeFormatter对象有3种方式。(1)方式一使用预定义的静态常量创建DateTimeFormatter格式器。在DateTimeFormatter类中包含大量预定义的静态常量,如BASIC_ISO_DATE、ISO_LOCAL_DATE等,通过这些静态常量都可以获取DateTimeFormatter实例。DateTimeFormatter类(2)方式二使用本地化样式创建DateTimeFormatter格式器。在FormatStyle类中定义了FULL、LONG、MEDIUM和SHORT四个枚举值,它们表示不同样式的日期和时间,这种方式通过ofLocalizedDateTime(FormatStyledateTimeStyle)实现DateTimeFormatter对象的创建。DateTimeFormatter类(3)方式三(最为常用)根据模式字符串创建DateTimeFormatter格式器,这种方式通过ofPattern(Stringpattern)方法实现DateTimeFormatter对象的创建。ofPattern()方法需要接收一个表示日期或时间格式的模板字符串,该模板字符串通过特定的日期标记可以提取对应的日期或时间。DateTimeFormatter类常用的格式化模板标记如下表所示。格式化选项表示含义y年份,4位数字,使用yyyy表示。例如“2023”M月份,2位数字,使用MM表示。例如“11”d日(天数),2位数字,使用dd表示。例如“01”H小时(24小时制),2位数字,使用HH表示。例如“10”m分钟,2位数字,使用mm表示。例如“15”s秒,2位数字,使用ss表示。例如“00”S毫秒,3位数字,使用SSS表示。例如“776”a上午/下午标记,例如“AM”或“PM”DateTimeFormatter类使用DateTimeFormatter将日期、时间格式化为字符串,有两种方式。(1)调用DateTimeFormatter的format(TemporalAccessortemporal)方法执行格式化,其中参数temporal是一个TemporalAccessor类型接口,其主要实现类有LocalDate、LocalTime、LocalDateTime。(2)调用LocalDate、LocalDateTime等日期、时间对象的format(DateTimeFormatterformatter)方法执行格式化。若要使用DateTimeFormatter将指定格式的字符串解析成日期、时间对象,可以使用日期时间对象所提供的parse(CharSequencetext,DateTimeFormatterformatter)方法。DateTimeFormatter类案例演示下面通过一个案例来演示,如何使用DateTimeFormatter来格式化日期、时间。Example14.java源代码DateTimeFormatter类案例演示案例的运行效果如下图所示。Duration类和Period类Duration类和Period类是Java中用于处理时间差的类,它们为开发人员提供了更方便的时间间隔计算方法。Duration类和Period类1.Duration类Duration类用来表示两个时间对象的时间间隔,可以用于计算两个时间对象相差的天数、小时数、分数、秒数、毫秒数、纳秒数。Duration类常用方法如下表所示。方法声明功能描述between(TemporalstartInclusive,TemporalendExclusive)获取一个Duration表示两个对象之间的持续时间toDays()计算两个时间相差的天数toHours()计算两个时间相差的小时数toMinutes()计算两个时间相差的分钟数toSeconds()计算两个时间相差的秒数toMillis()计算两个时间相差的毫秒数toNanos()计算两个时间相差的纳秒数Duration类和Period类1.Duration类下面通过一个案例演示Duration类中常用方法的使用。Example15.java源代码Duration类和Period类1.Duration类案例的运行结果如下图所示。Duration类和Period类2.Period类Period主要用于计算两个日期之间的间隔,可以用来计算两个日期之间相差的年、月、日。Period类的方法与Duration类的方法在使用上类似,Period类常用的方法如下表所示。方法声明功能描述between(LocalDatestart,LocalDateend)获取一个Period表示两个对象之间的持续时间getYears()计算两个日期相差的年数getMonths()计算两个日期相差的月数getDays()计算两个时间相差的天数Duration类和Period类2.Period类需要注意的是,使用getYears()方法、getMonths()方法和getDays()方法计算年数、月数和天数差时,只计算一个单位的字段值,而非整个Period的不同单位维度的总值。也就是说,计算两个时间的月份差时,不会包含年份在内,在计算天数差

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论