时间格式化

  1. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
  2. LocalDateTime localDateTime = LocalDateTime.now();
  3. String localDateTimeStr = formatter.format(localDateTime);
  4. System.out.println(localDateTimeStr);
  5. String str = "2008年08月23日 23:59:59";
  6. DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
  7. LocalDateTime localDateTime2 = LocalDateTime.parse(str,formatter2);
  8. System.out.println(localDateTime2);

LocalDate:年月日


  1. LocalDate today = LocalDate.now(); // -> 2019-01-31
  2. System.out.println("取当前日期: "+today);
  3. LocalDate crischristmas = LocalDate.of(2018, 12, 25); // -> 2018-12-25
  4. System.out.println("根据年月日取日期,12月就是12: "+crischristmas);
  5. LocalDate endOfFeb = LocalDate.parse("2018-12-25"); // 严格按照ISO yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式
  6. System.out.println("根据字符串取: "+endOfFeb);
  7. LocalDate oneToday = today.plus(1, ChronoUnit.WEEKS); // ->2019-02-07
  8. System.out.println("如何获取1周后的日期: "+oneToday);
  9. LocalDate previousYear = today.minus(1, ChronoUnit.YEARS);
  10. System.out.println("一年前的日期: "+previousYear);
  11. LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2019-01-01
  12. System.out.println("取本月第1天: "+firstDayOfThisMonth);
  13. LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2019-01-02
  14. System.out.println("取本月第2天: "+secondDayOfThisMonth);
  15. LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2019-01-31
  16. System.out.println("取本月最后一天,再也不用计算是28,29,30还是31: "+lastDayOfThisMonth);
  17. LocalDate firstDay = lastDayOfThisMonth.plusDays(1); // 变成了2019-02-01
  18. System.out.println("取下一天: "+firstDay);
  19. LocalDate nextSuday = today.with(DayOfWeek.SUNDAY);
  20. System.out.println("下一个周日: "+nextSuday);
  21. LocalDate nextSaturday = today.with(DayOfWeek.SATURDAY);
  22. System.out.println("下一个周六: "+nextSaturday);
  23. LocalDate firstMonday = LocalDate.parse("2019-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2019-01-07
  24. System.out.println("取2019年1月第一个周一 "+firstMonday);
  25. //对比日期是否为同一天(生日对比)
  26. LocalDate birthday = LocalDate.of(1990, 10, 12);
  27. MonthDay birthdayMd = MonthDay.of(birthday.getMonth(), birthday.getDayOfMonth());
  28. MonthDay today = MonthDay.from(LocalDate.of(2019, 10, 12));
  29. System.out.println(today.equals(birthdayMd));

LocalTime:时分秒毫秒


  1. LocalTime now = LocalTime.now(); // 11:09:09.240
  2. System.out.println("时间包含毫秒: "+now);
  3. LocalTime now1 = LocalTime.now().withNano(0); // 11:09:09
  4. System.out.println("时间包含不毫秒"+now1);
  5. LocalTime zero = LocalTime.of(1, 2, 1); // 00:00:00
  6. System.out.println("构造时间: "+zero);
  7. LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00
  8. System.out.println("字符串转时间: "+mid);
  9. LocalTime twoHour = LocalTime.now().plusHours(2);
  10. System.out.println("添加2小时: "+twoHour);

LocalDateTime:年月日时分秒

  1. LocalDateTime ldt1 = LocalDateTime.of(2017, Month.JANUARY, 4, 17, 23, 52);
  2. System.out.println("创建日期时间方法一: "+ldt1);
  3. LocalDate localDate = LocalDate.of(2017, Month.JANUARY, 4);
  4. LocalTime localTime = LocalTime.of(17, 23, 52);
  5. LocalDateTime ldt2 = localDate.atTime(localTime);
  6. System.out.println("创建日期时间方法二: "+ldt2);

Instant:纳秒时间戳

  1. LocalDate date = ldt1.toLocalDate();
  2. System.out.println("日期时间获取日期"+date);
  3. LocalTime time = ldt1.toLocalTime();
  4. System.out.println("日期时间获取时间"+time);
  5. Instant instantNow =Instant.now();
  6. System.out.println("时间戳(精确到纳秒)nanos表示纳秒部分 : "+instantNow.toEpochMilli()+instantNow.getNano());
  7. Instant instant = Instant.ofEpochSecond(120, 100000);
  8. System.out.println("时间戳(精确到纳秒) : "+instant);

Duration:两时间间隔

  1. LocalDateTime from = LocalDateTime.of(2019, Month.JANUARY, 5, 10, 7, 0); // 2019-01-05 10:07:00
  2. LocalDateTime to = LocalDateTime.of(2019, Month.FEBRUARY, 5, 10, 7, 0); // 2019-02-05 10:07:00
  3. Duration duration = Duration.between(from, to); // 表示从 2019-01-05 10:07:00 到 2019-02-05 10:07:00 这段时间
  4. long days = duration.toDays();
  5. System.out.println("这段时间的总天数"+days);
  6. long hours = duration.toHours();
  7. System.out.println("这段时间的小时数"+hours);
  8. long minutes = duration.toMinutes();
  9. System.out.println("这段时间的分钟数"+minutes);
  10. long seconds = duration.getSeconds();
  11. System.out.println("这段时间的秒数"+seconds);
  12. long milliSeconds = duration.toMillis();
  13. System.out.println("这段时间的毫秒数"+milliSeconds);
  14. long nanoSeconds = duration.toNanos();
  15. System.out.println("这段时间的纳秒数"+nanoSeconds);

Duration:处理两个时间之间的差值

  1. Duration duration1 = Duration.of(5, ChronoUnit.DAYS); // 5天
  2. System.out.println("这段时间的分钟数"+duration1.toMinutes());
  3. Duration duration2 = Duration.of(1000, ChronoUnit.MILLIS); // 1000毫秒
  4. System.out.println("这段时间的分钟数"+duration2.toMinutes());

ZonedDateTime:引入地区

  1. ZonedDateTime zonedDateTime = ZonedDateTime.now();
  2. System.out.println(zonedDateTime);
  3. Instant instant = Instant.now();
  4. ZoneId zoneId1 = ZoneId.of("GMT");
  5. ZonedDateTime zonedDateTime2 = ZonedDateTime.ofInstant(instant,zoneId1);
  6. System.out.println(zonedDateTime2);

java JDK8 时间处理的更多相关文章

  1. 全面解析Java日期时间API

    时区 GMT(Greenwich Mean Time):格林尼治时间,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间. UTC(Universal Time ...

  2. Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

    目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总 ...

  3. Java 进行时间处理

    Java 进行时间处理 一.Calendar (1).Calender介绍 Calendar的中文翻译是日历,实际上,在历史上有着许多种计时的方法.所以为了计时的统一,必需指定一个日历的选择.那现在最 ...

  4. Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...

  5. Java 对时间和日期的相关处理

    1. 获取当前系统时间和日期并格式化输出 import java.util.Date; import java.text.SimpleDateFormat; public class NowStrin ...

  6. java JDK8 学习笔记——助教学习博客汇总

    java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Jav ...

  7. java JDK8 学习笔记——第16章 整合数据库

    第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...

  8. java中时间的获取(二)

    java中时间的获取2 /** * 获取数据库操作记录时间 */ public static String getOpreateDbTime() { Calendar c = Calendar.get ...

  9. Java 日期时间

    Java 日期时间 标签 : Java基础 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含 ...

随机推荐

  1. [loj2049]网络

    考虑整体二分,假设二分到区间$[l,r]$,即要对若干个询问,判断这些询问的答案与$mid=\lfloor\frac{l+r}{2}\rfloor$的关系 根据题意,答案$\le mid$等价于重要度 ...

  2. [gym102900H]Rice Arrangement

    (可以先阅读题目中关于顺逆时针的定义,避免理解错误) 考虑一盘菜$b_{i}$被$a_{j}$吃掉,对于其最后一次移动:如果是顺时针,则称$b_{i}$的移动区间为$[a_{j},b_{i}]$(若$ ...

  3. Spring Cloud Gateway过滤器精确控制异常返回(分析篇)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 在<Spring Cloud Gate ...

  4. System类的常用方法(currentTimeMillis与arraycopy)

    System类的常用方法 currentTimeMillis与arraycopy import java.util.Arrays; /* java.lang.System类中提供了大量的静态方法,可以 ...

  5. 在Winform框架的多文档界面中实现双击子窗口单独弹出或拖出及拽回的处理

    在基于DevExpress的多文档窗口界面中,我们一般使用XtraTabbedMdiManager来管理多文档窗口的一些特性,如顶部菜单,页面的关闭按钮处理,以及一些特殊的设置,本篇随笔介绍这些特点, ...

  6. DRF知识点总结

    1. Web API接口 2. Restful接口规范 RDF请求流程及主要模块分析

  7. rsync实现windows和windows之间的数据同步

    一:环境 1.同步对象:测试数据 2.服务端:Windows Server 2008 R2 3.客户端:Windows7 旗舰版64位 4.服务端rsync版本:cwRsyncServer_4.1.0 ...

  8. js浮点运算的坑

    1,js浮点型小数点运算的问题. 这么简单的计算,js竟然算的是错的,究其原因,是因为js小数在内存存储方式的原因. 具体原因: JavaScript 里的数字是采用 IEEE 754 标准的 64 ...

  9. 巩固javaweb的第二十一天

    巩固内容:对输入信息进行验证 JavaScript 语言 在 Web 应用中需要在客户端执行的功能可以使用 JavaScript 语言编写,在使用的时候 需要把 JavaScript 代码放在下面的两 ...

  10. 视频框架 Vitamio使用

    转自http://blog.csdn.net/u010181592/article/category/5893483 1.在https://github.com/yixia/VitamioBundle ...