简介

在Java 8之前,我们使用SimpleDateFormat和DateFormat类来表示一种格式,这存在很多问题,例如它们笨重,易变且不是线程安全的,这意味着无法共享它们,并且每次都需要要将String转换为Date,必须创建一个新的DateFormat对象。 尽管将SimpleDateFormat封装到线程局部变量中确实可以缓解,但这还不够。

JDK 8在新的DateTimeFormatter类中解决了该问题,该类可用于定义日期和时间格式,例如“ yyyy-MM-dd HH:mm:SS”,用于指定格式的语法与我们之前在SimpleDateFormat类中使用的语法相同,但此类既是线程安全的又是不可变的,这意味着您可以在线程之间共享其实例。 理想情况下,可以将DateTimeFormatter的引用存储到静态变量中以使其成为全局变量。

使用DateTimeFormatter的另一个优点是它提供了几个内置的格式化程序,例如java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME,它可以将日期表示为
“ 2017-08-03T10:15:30”。 您可以在Javadoc中看到内置格式化程序的完整列表,也可以阅读Really In耐心的Java SE 8以获得更多信息。

获得格式化程序后,解析或格式化日期就像调用方法一样容易。 您只需要调用LocalDateTime.parse()方法即可在Java 8中将String转换为LocalDateTime。parse()接受String并根据DateTimeFormatter指定的格式将其解析为LocalDateTime实例。 parse()方法也被重载,默认情况下它使用ISO_LOCAL_DATE_TIME格式,即“ yyyy-MM-dd HH:mm”,即“ 2017-08-03T10:15:30”,但是如果您的String格式不同,则您可以指定一个单独的格式化程序。

示例

public static void main(String[] args) {DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");//必须得为1999-09-21,不能是1999-9-21LocalDate localDate = LocalDate.parse("1999-09-21", formatter1);System.out.println(localDate);String format1 = formatter1.format(LocalDate.now());System.out.println(format1);DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");//必须得为1999-09-21,不能是1999-9-21DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("HH:mm:ss");LocalTime localTime = LocalTime.parse("12:12:12", formatter3);System.out.println(localTime);String format3 = formatter3.format(LocalTime.now());System.out.println(format3);//必须得为1999-09-21,不能是1999-9-21LocalDateTime localDateTime = LocalDateTime.parse("1999-09-21 12:12:12", formatter2);System.out.println(localDateTime);String format2 = formatter2.format(LocalDateTime.now());System.out.println(format2);}

结果:

Java8后 日期时间格式化及解析相关推荐

  1. java8日期时间格式化与解析

    java8日期时间格式化与解析 1. 简述 主要介绍LocalDateTime,ZonedDateTime的格式化及解析. 常见带日期时间格式: 字段名 字段值 api格式 DateTimeForma ...

  2. java 纳秒 格式化_Java日期时间API系列35-----Jdk8中java.time包中的新的日期时间API类应用,微秒和纳秒等更精确的时间格式化和解析。...

    通过Java日期时间API系列1-----Jdk7及以前的日期时间类中得知,Java8以前除了java.sql.Timestamp扩充纳秒,其他类最大只精确到毫秒:Java8 time包所有相关类都支 ...

  3. Springboot 关于日期时间格式化处理方式总结

    点击关注公众号,实用技术文章及时了解 来源:juejin.im/post/5e62817fe51d4526d05962a2 项目中使用LocalDateTime系列作为DTO中时间的数据类型,但是Sp ...

  4. oracle中如何格式化输出,【学习笔记】数据库日期时间格式化输出案例

    天萃荷净 分享一篇关于开发DBA在工作中常用到的日期时间格式化输出方法案例,含:mysql.sql server.oracle 3种数据库日期时间格式化输出 1.mysql数据库时间格式化输出 DAT ...

  5. DateTimeFormatter 日期的格式化与解析

    JDK8新增日期API LocalTime .LocalDate .LocalDateTime DateTimeFormatter 日期的格式化与解析 Java时间戳:Instant Period.D ...

  6. react 日期怎么格式化_react中日期时间格式化

    项目开发过程当中,总会遇到这样那样的时间格式化问题,那么在react中,日期时间格式化该怎么解决??react 一种是直接使用插件 moment,方便快捷完美的解决时间格式化问题:npm 另外一种是, ...

  7. java yyyy-mm-dd 日期格式_Java中的日期时间格式化

    原标题:Java中的日期时间格式化 1 Java日期时间格式化的概念 我们在日常的开发过程中常常会碰到关于日期时间的计算与存储问题,比如我们要把一个当前时间类型转换成字符串类型,我们会直接使用Util ...

  8. java 100天是周几_编写一段程序。使用Java8的日期时间报打印当前日期的后100天是哪一天?星期几?然后,在...

    最佳答案 String[] weekday = {"星期一","星期二","星期三","星期四","星期五&q ...

  9. java8新日期时间类使用

    java8之后提供了新的日期和时间相关类,接口和枚举,放在了java.time包下(之前旧的日期时间类放在java.util包),使设置日期时间更加方便.java8的新日期时间类的设计,借鉴了joda ...

最新文章

  1. 华为机考HJ13句子逆序C语言弱智解法
  2. workerman结合laravel开发在线聊天应用的示例代码
  3. 清华导学故事|卓晴:在每个人生阶段中,找到自己的定位
  4. 使用Ubuntu挂载NTFS格式分区
  5. 【Spring框架家族】Spring Cloud Eureka 之常用配置解析(转载)
  6. java 回滚异常_Spring事务管理只对出现运行期异常进行回滚
  7. 宝塔无法安装php5,宝塔无法安装phpmyadmin怎么办
  8. 【Pre蓝桥杯嵌入式】【STM32】学习索引
  9. 估值指标方法20190805
  10. Java深入 - Java虚拟机性能问题监控和排查
  11. 扫描40亿可路由的 IPv4 地址后发现这些打印机的 IPP 端口遭暴露
  12. python email 附件_使用python调用email模块实现附件发送
  13. Android——实现全国省市区地区选择
  14. 遗传算法及c++实现
  15. slick edit
  16. 计算机中的二进制实验报告,大学计算机-实验报告一.doc
  17. 计算机加密解除,bitlocker加密如何取消?Win7系统电脑取消bitlocker加密的方法
  18. Charles手机端抓包,抓取小说软件整本小说的示例
  19. 正则表达式去掉回车、换行、空白符号、空格
  20. 利用oss实现下载功能

热门文章

  1. PC-Lint的使用方法(一)
  2. VisualStudio工程设置(三)---Pclint集成VS2013及常见用法
  3. 链创未来——2018迅雷全球区块链应用大赛
  4. 微擎模块php文件下载加密,微擎 goto + 混淆加密, 反向解密思路.
  5. 错误 eventqueue.java_线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException [duplicate]...
  6. 电脑为什么会卡、CPU和内存的重要性、选哪个好呢?
  7. Adaptive AUTOSAR架构介绍(9)
  8. 使用PS将图片的白色背景去掉
  9. Windows多线程控制台程序
  10. 武田发布Pevonedistat联合阿扎胞苷治疗较高危MDS患者2期试验的有力数据