java系列知识之~SimpleDateFormat日期格式化

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 这篇文章介绍了Java中`SimpleDateFormat`类的使用,包括如何创建实例、格式化日期对象为字符串、解析字符串为日期对象,并提供了常见日期模式和使用示例,同时指出了`SimpleDateFormat`不是线程安全及其它一些注意事项。

介绍说明

  SimpleDateFormat 是 Java 中用于格式化和解析日期的类。通过指定日期和时间模式,可以将日期对象格式化为字符串或从字符串解析为日期对象。以下是 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); 的详细介绍和使用方法。

① 创建 SimpleDateFormat 实例

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");

  这里的 “yyyyMMdd” 是一个日期模式,表示年份(4位)、月份(2位)和日期(2位)。例如,20240806 表示 2024 年 8 月 6 日。

② 将日期对象格式化为指定格式的字符串

Date date = new Date();
String formattedDate = simpleDateFormat.format(date);
System.out.println("Formatted Date: " + formattedDate);

Formatted Date: 20240806

③ 解析日期

将字符串解析为日期对象。

String dateString = "20240806";
try {
    Date parsedDate = simpleDateFormat.parse(dateString);
    System.out.println("Parsed Date: " + parsedDate);
} catch (ParseException e) {
    e.printStackTrace();
}

Parsed Date: Tue Aug 06 00:00:00 GMT 2024

④常见的日期模式

  • yyyy:四位数的年份
  • MM:两位数的月份(01-12)
  • dd:两位数的日期(01-31)
  • HH:两位数的小时(00-23)
  • mm:两位数的分钟(00-59)
  • ss:两位数的秒(00-59)

⑤示例代码

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatExample {
    public static void main(String[] args) {
        // 创建 SimpleDateFormat 实例
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");

        // 当前日期格式化为指定格式的字符串
        Date date = new Date();
        String formattedDate = simpleDateFormat.format(date);
        System.out.println("Formatted Date: " + formattedDate);

        // 字符串解析为日期对象
        String dateString = "20240806";
        try {
            Date parsedDate = simpleDateFormat.parse(dateString);
            System.out.println("Parsed Date: " + parsedDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

⑥注意事项

  • SimpleDateFormat 不是线程安全的,如果在多线程环境中使用,建议为每个线程创建一个实例,或使用 ThreadLocal。
  • 确保解析的字符串格式与模式匹配,否则会抛出 ParseException 异常。

2、代码案例

    /**
     * 获取这个格式化类型的日期和时间: 可以根据格式化的方式 来获取不同格式的时间
     *      yyyyMMdd             ->    20231120
     *      HHmmss               ->    145504
     *      yyyy-MM-dd HH:mm:ss  ->    2023-11-20 14:55:04
     *      yyyy/MM/dd HH:mm:ss  ->    2023/11/20 14:55:04
     *
     * 测试结果:交易日期:20231120
     *          交易时间:145025
     *          交易完整时间:2023-11-20 14:52:42
     *          交易完整时间:2023/11/20 14:55:04
     */
    public static void testData01(){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        String jyrq = simpleDateFormat.format(new Date()); //交易日期
        System.out.println("交易日期:" + jyrq);

        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("HHmmss");
        String jysj = simpleDateFormat1.format(new Date()); //交易时间
        System.out.println("交易时间:" + jysj);

        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String data = simpleDateFormat2.format(new Date()); //交易时间
        System.out.println("交易完整时间:" + data);

        SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        String data1 = simpleDateFormat3.format(new Date()); //交易时间
        System.out.println("交易完整时间:" + data1);
    }

在这里插入图片描述

相关文章
|
3月前
|
安全 Java API
时间日期API(Date,SimpleDateFormat,Calendar)+java8新增日期API (LocalTime,LocalDate,LocalDateTime)
这篇文章介绍了Java中处理日期和时间的API,包括旧的日期API(Date、SimpleDateFormat、Calendar)和Java 8引入的新日期API(LocalTime、LocalDate、LocalDateTime)。文章详细解释了这些类/接口的方法和用途,并通过代码示例展示了如何使用它们。此外,还讨论了新旧API的区别,新API的不可变性和线程安全性,以及它们提供的操作日期时间的灵活性和简洁性。
|
6月前
|
存储 安全 Java
java编程SimpleDateFormat详解
java编程SimpleDateFormat详解
|
6月前
|
安全 Java 测试技术
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
【6月更文挑战第7天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
50 0
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
|
7月前
|
人工智能 IDE Java
CodeFuse代码优化实战:Java日期格式化时如何正确表示年份?
Java日期格式化时这里的坑你知道吗?一起来看正确用法!使用 CodeFuse 代码优化功能,可以帮你完美避坑,快来试试吧~
72 0
|
7月前
|
Java
Java中SimpleDateFormat的具体用法
Java中SimpleDateFormat的具体用法
54 0
|
Java
Java 中SimpleDateFormat类的使用
Java 中SimpleDateFormat类的使用
85 0
|
安全 Java
Java中的SimpleDateFormat方法分析
Java中的SimpleDateFormat方法分析
|
存储 安全 Java
Java类库StrringBuffer类、Math、SimpleDateFormat、Random随机数、大数字处理类和UUID 无重复数据(附带面试题)
1.StrringBuffer类 CharConsequnse接口,2.Math数学计算,3.Date日期处理类与SimpleDateFormat、4.Random随机数、5.大数字处理类、6.UUID 无重复数据
103 0
|
Java
Java Date - SimpleDateFormat 的使用
Java Date - SimpleDateFormat 的使用
59 0
|
安全 Java BI
【JavaSE专栏43】Java常用类SimpleDateFormat解析,轻松解决日期格式化问题
【JavaSE专栏43】Java常用类SimpleDateFormat解析,轻松解决日期格式化问题
194 0