• Java 格式化时间与时间戳与时间间隔


    目录

    格式化日期

    SimpleDateFormat

     日期转换为字符串

     字符串转日期

    Calendar格式化

    LocalDate格式化

    时间戳(timestamp)

    获取当前时间戳

    时间戳转日期

    计算时间间隔

    Duration


    部分参考: https://juejin.cn/post/6969933701153030174

    格式化日期

    SimpleDateFormat

    • Date格式化 ==SimpleDateFormat.parse()方法将String转为Date==
    • 格式释义举例
      yyyy2019
      MM02
      dd18
      HH小时(24小时制)13,下午一点
      mm分钟53
      ss42
      SSS毫秒629

     日期转换为字符串

    1. Date date = new Date();
    2. System.out.println(date);
    3. //使用SimpleDateFormat,自定义格式
    4. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    5. String format = dateFormat.format(date);
    6. System.out.println(format);

     字符串转日期

    1. Date date = new Date();
    2. System.out.println(date);
    3. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    4. String format = dateFormat.format(date);
    5. //转化后是String,将String 转换成Date
    6. try {
    7. Date parse = dateFormat.parse(format);
    8. } catch (ParseException e) {
    9. e.printStackTrace();
    10. }
    1. //显示如下
    2. Tue Nov 26 15:00:04 CST 2019
    3. 2019-11-26 15:00:04
    4. Tue Nov 26 15:00:04 CST 2019
    • Calendar格式化

    1. //getTime方法将Calendar转换成Date后在格式化
    2. Calendar instance = Calendar.getInstance();
    3. Date date = instance.getTime();
    4. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    5. String format = dateFormat.format(date);
    6. System.out.println(format);
    • LocalDate格式化

    • //只获取日期
    • LocalDate
    • //只获取时间
      LocalTime
    1. LocalDate date = LocalDate.now();
    2. LocalTime time = LocalTime.now();
    3. LocalDateTime dateTime = LocalDateTime.now();
    4. System.out.println(date);
    5. System.out.println(time);
    6. System.out.println(dateTime);
    7. //显示如下
    8. 2019-11-26
    9. 15:15:23.722
    10. 2019-11-26T15:15:23.722

    格式化 localDate 自带format()方法,需要传参DateTimeFormatter

    1. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");
    2. String format = date.format(dateTimeFormatter);
    3. System.out.println(format);
    4. DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("HH:mm:ss");
    5. String format2 = time.format(dateTimeFormatter2);
    6. System.out.println(format2);
    7. //显示如下
    8. 20191126
    9. 16:08:52

    时间戳(timestamp)

    时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

    1. //获取时间戳,单位毫秒
    2. long l = System.currentTimeMillis();
    3. System.out.println(l);
    4. //
    5. Date date = new Date();
    6. long time = date.getTime();
    7. System.out.println(time);
    8. //
    9. long timeInMillis = Calendar.getInstance().getTimeInMillis();
    10. System.out.println(timeInMillis);
    • 时间戳转日期

    1. //Date构造可直接转换
    2. Date date1 = new Date(1574758172536L);
    3. System.out.println(date1);

    计算时间间隔

    Duration

    1. import java.time.Duration;
    2. import java.time.LocalDateTime;
    3. public static void main(String[] args) {
    4. LocalDateTime start = LocalDateTime.of(2022,1,1,8,0,0);
    5. System.out.println("计算两个时间的差:");
    6. LocalDateTime end = LocalDateTime.of(2022,1,2,8,30,30);
    7. //创建时间区间 between
    8. //Duration duration = Duration.between(start, end);
    9. //创建时间区间 parse("PnDTnHnMn.nS")
    10. //Duration duration = Duration.parse("PT15M");
    11. //创建时间区间 from
    12. //Duration du1 = Duration.ofHours(10);
    13. //Duration duration = Duration.from(du1);
    14. //创建时间区间 Duration.of(long amount, TemporalUnit unit);unit 详见ChronoUnit枚举类
    15. //Duration duration = Duration.of(2, ChronoUnit.DAYS);
    16. //创建时间区间 Duration.ofDays(long days)
    17. Duration duration = Duration.ofDays(2);
    18. //区间加减运算:plus minus (days、hours、Minutes、Seconds、Millis、Nanos)
    19. duration = duration.plus(Duration.ofDays(2));
    20. duration = duration.minus(Duration.ofDays(1));
    21. duration = duration.plusDays(2);
    22. duration = duration.minusDays(1);
    23. long days = duration.toDays();
    24. System.out.println("相差:"+days+"天");
    25. long hours = duration.toHours();
    26. System.out.println("相差:"+hours+"小时");
    27. long minutes = duration.toMinutes();
    28. System.out.println("相差:"+minutes+"分");
    29. long millis = duration.toMillis();
    30. System.out.println("相差:"+millis+"毫秒");
    31. long nanos = duration.toNanos();
    32. System.out.println("相差:"+nanos+"纳秒");
    33. }

  • 相关阅读:
    【OpenCV学习】第1课:加载丶修改丶显示丶保存图像
    SpringSecurity整合JWT
    力扣:105. 从前序与中序遍历序列构造二叉树(Python3)
    2.4_3死锁的处理策略---避免死锁
    数据结构-作业1
    快解析结合泛微OA
    页面功能并不是所有用户都能执行 点击判断用户权限路由是否进行跳转
    处理数据 根据 pid 添加到父级 children
    Java后台开发中常用规范文档说明
    Java 实例 - 字符串分割和字符串分隔
  • 原文地址:https://blog.csdn.net/qq_53679247/article/details/126864574