java.time包提供了新的日期和时间的API,新的API主要包括:1. LocalDate/LocalTime/LocalDateTime2. ZoneDateTime/ZoneId3. Instant4. Formatter我们看java.time提供的1. LocalDate: 本地的日期2. LocalTime: 本地的时间3. LocalDateTime: 本地的日+时间java.time提供的新的API主要是有这几个特点:1. 首先严格的区分日期和时间2. 其次所有的类称为不变类,这一点和String非常的类似3. 新的API的Month是从1到12,对应的是1月到12月,4. Week的范围是从1到7,对应的是周一到周日,这样我们就不需要考虑加1和减1的问题了我们可以通过LocalDate.now()获取当前的日期,通过LocalTime.now()获取当前的时间,通过LocalDateTime.now()获取当前的日期和时间,当我们打印LocalDate和LocalTime,或者是LocalDateTime的时候,它是严格的按照ISO-8601的格式打印的我们还可以通过指定日期和时间,可以构造LocalDate,LocalTime,LocalDateTime,方法通过调用of方法,传入年月日,或者是时分秒,得到LocalDate和LocalTime,传入年月日和时分秒,我们可以构造出一个DateTime,或者利用一个LocalDate,和LocalTime对象,构造出一个新的LocalDateTime
新的API同样也提供了DateTimeFormatter对象,他和旧的SimpleDateFormat对象不一样的是,它是一个不可变类,我们通过ofPattern这个方法,传入指定的格式化的字符串,可以得到DateFormatter这个对象,我们同样调用format和parse方法,对日期进行格式化,或者从字符串解析出日期,默认情况下,LocalDate,LocalTime,LocalDateTime,是按照ISO标准格式进行解析的,因此,我们采用的是标准的格式化日期,或者是时间,我们就可以通过LocalDate,LocalTime,LocalDateTime,我们已经列出了几种标准的日期,时间,已经日期和时间的字符串,新的API还有一个重大的更新,就是他增加了日期和时间的运算,我们通过LocalDate的plusDays,传入变量5,就可以在先有的基础上加上5天,注意LocalDate是一个不变类,所以plusDays返回的是一个新的LocalDate对象,类似的我们用MinusHours减掉2个小时,我们可以通过plusWeeks增加几周我们还可以对日期和时间进行调整,例如我们获取到当前的日期,然后我们调用withDayOfMonth,传入1,就可以把日期调整到日期的第一天,我们用withSecond(0).withNano(0)可以把秒和纳秒调整为0,我们还可以通过一个TemporalAdjusters.lastDaysMonth(),我们就可以计算出本月的最后一天,我们可以通过TemporalAdjusters.firstInMonth传入DayOfWeek,例如SUNDAY,我们就计算出了本月的第一个周日新的API还提供了判断日期的先后,我们通过两个日期可以通过isBefore,或者isAfter,来判断他们的先后顺序,我们通过equals也可以判断两个日期是否相等我们还可以计算日期的Period,我们有一个utils方法可以得到一个Period对象,表示某一天到指定的另一天,他之间相差多少日期,例如我们计算2016年1月20号到2050年1月1号,我们可以得到一个Period对象,我们打印这个对象,可以打印P33Y1M12D,表示这个日期相差33年,1个月12天我们通过Priod.getYears(),getMonths(),getDays(),可以分别取出对应的整数
我们要注意,LocalDateTime是无法与Long进行转换的:1. 这是因为从设计上LocalDateTime他是没有时区的概念,因为LocalDateTime他是没有时区,我们也无法确定某一个时刻2. ZoneDateTime他是有时区的,所以他可以与Long交换最后我们总结一下LocalDate,LocalTime,LocalDateTime:1. 他们都是不变类2. 默认按照ISO-8601标准格式化和解析3. 我们使用DateTimeFormatter自定义格式化和解析4. 我们可以通过plusDays和minusHours等方法对日期和时间进行加减,返回新的对象5. 我们使用withDayOfMonth/with等方法调整日期和时间,返回新的对象6. 我们还可以使用isBefore/isAfter/equals判断日期和时间的先后

LocalDateTime - Java处理日期和时间相关推荐

  1. Java 8 日期和时间解读

    转载自 Java 8 日期和时间解读 现在,一些应用程序仍然在使用java.util.Date和java.util.Calendar API和它们的类库,来使我们在生活中更加轻松的处理日期和时间,比如 ...

  2. 深入了解Java 8日期和时间API

    在这篇文章中,我们将更深入地了解通过Java 8获得的新的Date / Time API( JSR 310 ). 请注意,本文主要由显示新API功能的代码示例驱动. 我认为这些示例是不言自明的,因此我 ...

  3. Java 8 - 日期和时间实用技巧

    Java 8 – 日期和时间实用技巧 当你开始使用Java操作日期和时间的时候,会有一些棘手.你也许会通过System.currentTimeMillis() 来返回1970年1月1日到今天的毫秒数. ...

  4. Java 8 日期、时间、时间矫正器操作

    Java 8 日期.时间操作 真放肆不在饮酒放荡,假矜持偏要慷慨激昂.万事留一线,江湖好相见–老郭经典语录 本篇描述LocalDate.LocalTime.LocalDateTime.Temporal ...

  5. java国际化——日期和时间+排序

    [0]README 1) 本文部分文字描述转自 core java volume 2 , 测试源代码均为原创, 旨在理解 java国际化--日期和时间+排序 的基础知识 : [1]日期和时间 1)当格 ...

  6. Java之日期与时间

    Date类 Date类代表当前所在系统的日期时间信息 Date的构造器 public Date()        //创建一个Date对象,代表的是系统当前此刻日期与时间 public Date(lo ...

  7. Java的日期与时间之如何计算业务代码的运行时间呢?

    转自: Java的日期与时间之如何计算业务代码的运行时间呢? 下文笔者讲述计算运行时间的方法分享,如下所示 实现思路:在业务开始时间和结束时间都加入获取时间的方法然后相减即可得到运行时间 例: lon ...

  8. Java的日期与时间java.time.Duration的简介说明

    转自: Java的日期与时间java.time.Duration的简介说明 下文笔者讲述Duration类的简介说明,如下所示 Duration类简介 Duration对象:表示两个Instant间的 ...

  9. Java 8日期和时间

    如今,一些应用程序仍在使用java.util.Date和java.util.Calendar API,包括使我们的生活更轻松地使用这些类型的库,例如JodaTime. 但是,Java 8引入了新的AP ...

最新文章

  1. 基于TensorRT优化的Machine Translation
  2. 《ANSYS 14.0超级学习手册》一第2章 高级应用的基石——APDL
  3. 【Matlab 控制】构建系统,绘制零极点
  4. FineReport——获取控件值和单元格值
  5. qemu 规范路径_基于qemu-riscv64模拟器运行debian
  6. u6系统服务器启动不了,u6链接不到服务器
  7. 深度解读服务治理 ServiceMesh、xDS
  8. unity3d Aniso Level 摄像机近地面清楚,远地面模糊
  9. Linux 文件系统启动记录
  10. 响应式Web设计在跨终端广告创意中的应用
  11. 年终盘点:2021年中国科技的重大突破
  12. Java13新增特性
  13. 网易vip邮箱和TOM VIP邮箱的作用有什么不同?
  14. ICME2021:基于机器视觉的RD模型
  15. alpha冲刺(事后诸葛亮)
  16. 牛客网Python笔试技巧
  17. Redis实现世界杯排行榜功能(实战)
  18. “COK-LIKE”的传承与颠覆 《万国觉醒》70天体验总结
  19. 一个农民富豪的乌托邦
  20. 【Unity Shaders】Reflecting Your World(反射吧!)介绍

热门文章

  1. KMyMoney:全体理财好管家
  2. Page,你是怎样处理回发事件的?
  3. scrapy 安装技巧
  4. 你的微博也被盗赞?试试HSTS强制HTTPS加密
  5. 获取Ip所在城市名与详细
  6. 花旗看好互联网板块 力荐Facebook等5支网络股
  7. 下载和安装Nginx之添加Nginx作为系统服务(CentOS7为例)
  8. Javascript创建类的七种方法
  9. UART0串口编程系列(四)
  10. GNS结合SecureCRT连接问题