LocalDate主要的三个API类:

  1. java.time.LocalDate;
  2. java.time.LocalDateTime;
  3. java.time.LocalTime;

LocatDate对象获取:

  1. @Test
  2. void contextLoads() {
  3. // 获取方式
  4. LocalDate localDate = LocalDate.now();
  5. System.out.println(localDate);
  6. LocalDate localDate1 = LocalDate.of(2020, 5, 23);
  7. System.out.println(localDate1);
  8. // 2020-09-28
  9. // 2020-05-23
  10. int year = localDate.getYear(); // 取年
  11. int monthValue = localDate.getMonthValue(); // 取月
  12. Month month = localDate.getMonth(); // 取月的枚举对象
  13. int monthValue1 = month.getValue(); // 具体值可以通过该枚举对象获取
  14. // 除此之外Month还有一些获取其他信息的方法
  15. int maxDaysLength = month.maxLength(); // 该月的最大天数
  16. int minDaysLength = month.minLength(); // 该月的最小天数
  17. int dayOfMonth = localDate.getDayOfMonth(); // 按当月取天数
  18. int dayOfYear = localDate.getDayOfYear(); // 按本年取天数
  19. DayOfWeek dayOfWeek = localDate.getDayOfWeek(); // 按本周取天数?
  20. // 和月枚举对象一样,这里也是一个周枚举对象
  21. int value = dayOfWeek.getValue();
  22. System.out.println(dayOfWeek); // 打印为 MONDAY ....
  23. }
  24. private static void cryptTest() {
  25. final String PASSWORD = "123456";
  26. PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
  27. String encode = passwordEncoder.encode(PASSWORD);
  28. System.out.println(encode);
  29. boolean matches = passwordEncoder.matches(PASSWORD, encode);
  30. System.out.println(matches);
  31. }

LocalDateTime & LocalTime:

  1. @Test
  2. void contextLoads() {
  3. LocalDateTime localDateTime1 = LocalDateTime.now();
  4. LocalDateTime localDateTime2 = LocalDateTime.of(2020, 2, 2, 13, 24, 52);
  5. System.out.println(localDateTime1); // 2020-09-28T16:01:48.248
  6. System.out.println(localDateTime2); // 2020-02-02T13:24:52
  7.  
  8. LocalTime localTime1 = LocalTime.now();
  9. LocalTime localTime2 = LocalTime.of(20, 2, 2);
  10. System.out.println(localTime1); // 16:03:41.330
  11. System.out.println(localTime2); // 20:02:02
  12.  
  13. int hour = localTime1.getHour();
  14. int minute = localTime1.getMinute();
  15. int second = localTime1.getSecond();
  16. int nano = localTime1.getNano();
  17. System.out.println("时 -> " + hour); // 时 -> 16
  18. System.out.println("分 -> " + minute); // 分 -> 6
  19. System.out.println("秒 -> " + second); // 秒 -> 26
  20. System.out.println("Nano -> " + nano); // Nano -> 206000000
  21. }

GET方法

SET方法

增加时间

减少时间

  1. public class DateTest {
  2. public static void main(String[] args) {
  3. LocalDate now1 = LocalDate.now();
  4. LocalTime now2 = LocalTime.now();
  5. LocalDateTime now3 = LocalDateTime.now();
  6.  
  7. System.out.println("LocalDate.now() -> " + now1);
  8. System.out.println("LocalTime.now() -> " + now2);
  9. System.out.println("LocalDateTime.now() -> " + now3);
  10. /*
  11. LocalDate.now() -> 2020-04-19
  12. LocalTime.now() -> 21:16:03.854
  13. LocalDateTime.now() -> 2020-04-19T21:16:03.854
  14. */
  15. LocalDateTime localDateTime = LocalDateTime.now();
  16. System.out.println("localDateTime.getDayOfWeek() -> " + localDateTime.getDayOfWeek() ); // 按周算天
  17. System.out.println("localDateTime.getDayOfMonth() -> " + localDateTime.getDayOfMonth() ); // 按月算天
  18. System.out.println("localDateTime.getDayOfYear() -> " + localDateTime.getDayOfYear() ); // 按年算天
  19. /*
  20. localDateTime.getDayOfWeek() -> SUNDAY
  21. localDateTime.getDayOfMonth() -> 19
  22. localDateTime.getDayOfYear() -> 110
  23. */
  24. System.out.println( localDateTime.getSecond() );// 取秒
  25. System.out.println( localDateTime.getMinute() );// 取分
  26. System.out.println( localDateTime.getHour() );// 取时
  27. System.out.println( localDateTime.getMonth() );// 取月 英文大写
  28. System.out.println( localDateTime.getMonthValue() );// 取月 数值表示
  29. System.out.println( localDateTime.getYear() );// 取年
  30. // set × with √
  31. }
  32. }

instant 瞬时时间 ,精度达到纳秒级

  1. public class DateTest {
  2. public static void main(String[] args) {
  3. Instant instant = Instant.now();
  4. System.out.println(instant);
  5. // 2020-04-19T13:47:58.712Z 本初子午线的标准时间
  6.  
  7. // 我们是东八时区,添加8小时的偏移量
  8. OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
  9. System.out.println(offsetDateTime);
  10.  
  11. // 从实例获取毫秒数 时间戳
  12. long epochMilli = instant.toEpochMilli();
  13. System.out.println(epochMilli);
  14.  
  15. // 通过时间戳注入产生instant实例
  16. Instant epochMilli1 = Instant.ofEpochMilli(epochMilli);
  17. System.out.println(epochMilli1);
  18. }
  19. }

DateTimeFormatter

  1. public class DateTest {
  2. public static void main(String[] args) {
  3.  
  4. // 预定义的标准格式
  5. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
  6.  
  7. // 事件对象
  8. LocalDateTime now = LocalDateTime.now();
  9.  
  10. // 转换格式 日期 -> 字符串格式
  11. String format = dateTimeFormatter.format(now);
  12.  
  13. // 格式
  14. System.out.println( now );
  15. System.out.println( format );
  16.  
  17. // 日期 转 字符串格式
  18. TemporalAccessor parse = dateTimeFormatter.parse("2020-03-19T22:09:46.345");
  19. System.out.println(parse);
  20.  
  21. DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
  22. // ofLocalizedDateTime();
  23. // ofLocalizedDate(); 按Date就支持FULL全格式
  24. // ofPattern("自定义格式"); "yyyy-MM-dd hh:mm:ss"
  25.  
  26. // FormatStyle.FULL 2020年4月19日 星期日
  27. // FormatStyle.LONG 2020年4月19日 下午10时15分01秒
  28. // FormatStyle.MEDIUM 2020-4-19 22:14:28
  29. // FormatStyle.SHORT 20-4-19 下午10:16
  30.  
  31. String format1 = dateTimeFormatter1.format(now);
  32. System.out.println(now);
  33. System.out.println(format1);
  34.  
  35. TemporalAccessor parse1 = dateTimeFormatter1.parse(format1);
  36. System.out.println(parse1);
  37. }
  38. }

案例,制作日历:

  1. @Test
  2. void contextLoads() {
  3. localDateCalendar();
  4. }
  5.  
  6. private static void localDateCalendar() {
  7. LocalDate now = LocalDate.now();
  8. int year = now.getYear();
  9. int month = now.getMonth().getValue();
  10. int dayOfMonth = now.getDayOfMonth();
  11.  
  12. // 设置这个月的第一天
  13. now = now.minusDays(dayOfMonth - 1);
  14. // 找到这一天为周几
  15. int value = now.getDayOfWeek().getValue();
  16.  
  17. // 开始渲染控制台输出样式
  18. System.out.println("Mon Tue Wed Thu Fri Sat Sun");
  19. for (int i = 1; i < value; i++) System.out.print(" ");
  20. while (now.getMonthValue() == month) {
  21. System.out.printf("%3d", now.getDayOfMonth());
  22. if (now.getDayOfMonth() == dayOfMonth) System.out.print("*");
  23. else System.out.print(" ");
  24. now = now.plusDays(1);
  25. if (now.getDayOfWeek().getValue() == 1) System.out.println();
  26. }
  27. if (now.getDayOfWeek().getValue() != 1) System.out.println();
  28. }

打印结果:

  1. Mon Tue Wed Thu Fri Sat Sun
  2. 1 2 3 4 5 6
  3. 7 8 9 10 11 12 13
  4. 14 15 16 17 18 19 20
  5. 21 22 23 24 25 26 27
  6. 28* 29 30

其他API

  1. ZoneId
  2. ZoneDateTime
  3. Clock
  4. Duration
  5. Period
  6. TemporalAdjuster
  7. TemporalAdjusters

【Java】【常用类】LocalDateTime 当前日期时间类 相关的更多相关文章

  1. Java 线程安全LocalTime 和LocaldateTime 新的Date和Time类 -JDK8新时间类的简单使用

    不可变类且线程安全 LocalDate .java.time.LocalTime 和LocaldateTime  新的Date和Time类 DateTimeFormatter ==https://ww ...

  2. 日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结

    1.日期类,时间类,日期时间类 初步日期使用方法及格式转换方法(旧方法): 格式://Mon Jul 30 11:26:05 CST 2018             年月日时分秒    CST代表北 ...

  3. Java基础——常用类之日期时间类

    如果有机会,请尝试Java8中全新的时间日期API!(参见Java8新特性随笔) 如果还是使用Java7及之前的版本,那么你可以尝试一些工具类(参考使用工具类相关的Hutool-DateUtil) 如 ...

  4. java 常用的验证方法帮助类

    import java.text.ParseException; import java.util.Collection; import java.util.Map; /** * 常用的验证方法帮助类 ...

  5. 【Java SE进阶】Day01 Object类、日期时间类、System类、StringBuilder类、包装类

    一.Object类 1.概述:Java语言的根类/超类,默认继承自Object类 2.常用方法 toString():返回对象的字符串表示--对象类型@内存地址值 可以对其重写@Override eq ...

  6. Object类、日期时间类、system类及StringBuilder字符串容器

    一.Object类常用API 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类.Object类中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是 ...

  7. java_Object类、日期时间类、System类、包装类

    Object类 java.lang.Object 类是所有类的父类.它描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类, 那么默认则继承自O ...

  8. java常用加密和解密工具类EncryptUtil.java

    package cn.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; im ...

  9. 用CTime类得到当前日期 时间

    (1)定义一个CTime类的对象CTime time: (2)得到当前时间time = CTime::GetCurrentTime(); (3)Get Year(),GetMonth(),GetDay ...

  10. java 常用类库:操作系统System类,运行时环境Runtime

    System类: System 类代表Java程序的运行平台,程序不能创建System类的对象, System类提供了一些类变量和类方法,允许直接通过 System 类来调用这些类变量和类方法. Sy ...

随机推荐

  1. Windows下cmd命令行sftp上传至Linux服务器

    1.Windows+R进入运行 2.输入cmd,进入命令行 3.命令建立连接 sftp 用户名@ip地址 例如: 输入密码,即可建立连接 上传方式: 1)直接拖动文件到命令行窗口,可以直接显示该文件的 ...

  2. LidarView工程搭建指南

    前言 笔者做过一段时间的车载LiDAR开发,对LidarView开源项目进行过深度定制,摸索了一套LidarView软件的开发和调试方法 1 软件安装 1.1 安装准备 以Windows10系统平台为 ...

  3. org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available es端口号及集群名称

    org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are availa ...

  4. mongodb QuickStart Demo

    import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.cl ...

  5. kafka事务流程

    流程 kafka事务使用的5个API // 1. 初始化事务 void initTransactions(); // 2. 开启事务 void beginTransaction() throws Pr ...

  6. 支付宝 返回的form如何在前端打开

    支付宝支付时返回了一段标签标签大概是 <form></form><script></script> 试了innerHtml怎么试都不能用,是那种直接把字 ...

  7. Ajax分析方法

    Ajax 分析方法 以前面的微博为例,拖动刷新的内容由 Ajax 加载,而且页面的 URL 没有变化,那么应该到哪里去查看这些 Ajax 请求呢? 查看请求 需要借助浏览器的开发者工具,下面以 Chr ...

  8. 全志T3+FPGA国产核心板——Pango Design Suite的FPGA程序加载固化

    本文主要基于紫光同创Pango Design Suite(PDS)开发软件,演示FPGA程序的加载.固化,以及程序编译等方法.适用的开发环境为Windows 7/10 64bit. 测试板卡为全志T3 ...

  9. 【Grafana】Grafana模板自定义-1-创建选择框

    如何创建选择框 第一步:编辑模板 第二步:配置变量 配置说明: General: [Name]变量名,后面模板中如果要按条件筛选,会用到这个变量名. [Type]类型,目前没仔细研究,使用默认的Que ...

  10. Win10 下安装使用easyocr图片识别工具

    [前言] 最近在做图像识别相关的工作,找到了一个名为EasyOCR的pythoh 库. 使用过程中出现了一些问题,现做简单记录. [正文] 1. 安装EasyOCR 我用了最简单的方法:pip3 in ...