程序员子龙(Java面试 + Java学习) 程序员子龙(Java面试 + Java学习)
首页
学习指南
工具
开源项目
技术书籍

程序员子龙

Java 开发从业者
首页
学习指南
工具
开源项目
技术书籍
  • 基础

    • java 学习路线图
    • HashMap 详解
    • Java 8 日期和时间 - 如何获取当前时间和时间戳?
    • Java 模板变量替换(字符串、占位符替换)
    • JDK 代理
    • Java SPI 详解
    • java stream 看这一篇文章就够了
    • Java 泛型详解
    • Java 动态修改注解值
    • 如何正确遍历删除List中的元素
    • 什么是Java注解
    • 异步编程神器:CompletableFuture详解
    • FIFO 、LRU、LFU算法
    • 十进制转十六进制
    • java中double类型数据加减乘除操作精度丢失问题及解决方法
    • JAVA利用反射清除实体类对应字段
    • JSON转换问题最全详解(json转List,json转对象,json转JSONObject)
    • java 8 List 根据某个字段去重
    • Java List排序
    • 压缩算法:字符串(JSON)压缩和解压【JDK之Deflater压缩与Inflater解压】
    • BCD码是什么?
    • Java二进制、八进制、十进制、十六进制转换
    • Java String字符串 与 ASCII码相互转换
    • 什么是跨域?解决方案有哪些?
    • Java 16进制字符串转10进制
    • LinkedHashMap实现LRU - 附重点源码解析
    • 去掉 if...else 的七种绝佳之法
    • 一眼看清@JSONField注解使用与效果
  • JVM

  • Spring

  • 并发编程

  • Mybatis

  • 网络编程

  • 数据库

  • 缓存

  • 设计模式

  • 分布式

  • 高并发

  • SpringBoot

  • SpringCloudAlibaba

  • Nginx

  • 面试

  • 生产问题

  • 系统设计

  • 消息中间件

  • Java
  • 基础
xugaoyi
2024-01-29

Java 8 日期和时间 - 如何获取当前时间和时间戳?

在过去,我们使用Date和CalendarAPI 来表示和操作日期。

java.util.Date– 日期和时间,使用默认时区打印。 java.util.Calendar- 日期和时间,更多操作日期的方法。 java.text.SimpleDateFormat– 格式化(日期 -> 字符串),解析(字符串 -> 日期)日期和日历。 Java 8 在包中创建了一系列新的日期和时间 API java.time。

java.time.LocalDate– 没有时间的日期,没有时区。 java.time.LocalTime– 没有日期的时间,没有时区。 java.time.LocalDateTime– 日期和时间,没有时区。 java.time.ZonedDateTime– 日期和时间,带时区。 java.time.DateTimeFormatter– java.time 的格式化(日期 -> 字符串),解析(字符串 -> 日期)。 java.time.Instant– 机器的日期和时间,自 Unix 纪元时间以来经过的秒数(UTC 时间 1970 年 1 月 1 日午夜)

一、获取当前时间

1、java.time.LocalDate 对于java.time.LocalDate, 用于LocalDate.now()获取没有时区的当前日期,并使用DateTimeFormatter.进行格式化。

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
String format = dateTimeFormatter.format(localDate);

System.out.println(format); // 2023/05/08
1
2
3
4
5

2、java.time.LocalTime 对于java.time.LocalTime, 用于LocalDate.now()获取没有时区的当前时间,并使用DateTimeFormatter进行格式化。

 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
 LocalTime localTime = LocalTime.now();

 System.out.println(dateTimeFormatter.format(localTime)); // 15:13:36
1
2
3
4

3、java.time.LocalDateTime 对于java.time.LocalDateTime, 用于LocalDateTime.now()获取没有时区的当前日期时间,并使用DateTimeFormatter格式化。

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
System.out.println(dateTimeFormatter.format(now));// 2023-05-08 15:15:08
1
2
3

4、java.time.ZonedDateTime 对于java.time.ZonedDateTime, 用于ZonedDateTime.now()获取系统默认时区或指定时区的当前日期时间。

 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");

// 当前时区
System.out.println(ZoneOffset.systemDefault());//Asia/Shanghai
System.out.println(OffsetDateTime.now().getOffset());//+08:00

// 当前时间
ZonedDateTime now = ZonedDateTime.now();
System.out.println(dateTimeFormatter.format(now));//2023/05/08 15:18:15
1
2
3
4
5
6
7
8
9

5、java.time.Instant 对于java.time.Instant, 用于Instant.now()获取自Unix 纪元时间(UTC 时间 1970 年 1 月 1 日午夜)以来经过的秒数,然后转换为其他java.time.*日期时间类。

DateTimeFormatter dtfDateTime = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");

Instant now = Instant.now();

LocalDateTime localDateTime = LocalDateTime.ofInstant(now, ZoneId.systemDefault());
System.out.println(dtfDateTime.format(localDateTime)); //2023/05/08 15:21:00
1
2
3
4
5
6

二.获取时间戳

  Timestamp timestamp = new Timestamp(System.currentTimeMillis());
    System.out.println(timestamp);                  // 2023-05-08 15:27:55.835
    System.out.println(timestamp.getTime());        // 1683530875835

    Instant instant = timestamp.toInstant();
    System.out.println(instant);                    // 2023-05-08T07:27:55.835Z
    System.out.println(instant.toEpochMilli());     // 1654234536842

    Timestamp tsFromInstant = Timestamp.from(instant); 
    System.out.println(tsFromInstant.getTime());   //1683530875835
1
2
3
4
5
6
7
8
9
10
上次更新: 2024/01/30, 15:08:57
HashMap 详解
Java 模板变量替换(字符串、占位符替换)

← HashMap 详解 Java 模板变量替换(字符串、占位符替换)→

最近更新
01
一个注解,优雅的实现接口幂等性
11-17
02
MySQL事务(超详细!!!)
10-14
03
阿里二面:Kafka中如何保证消息的顺序性?这周被问到两次了
10-09
更多文章>
Theme by Vdoing | Copyright © 2024-2024

    辽ICP备2023001503号-2

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式