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

简介: 这篇文章介绍了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);
    }

在这里插入图片描述

相关文章
|
人工智能 IDE Java
CodeFuse代码优化实战:Java日期格式化时如何正确表示年份?
Java日期格式化时这里的坑你知道吗?一起来看正确用法!使用 CodeFuse 代码优化功能,可以帮你完美避坑,快来试试吧~
345 0
|
安全 Java BI
【JavaSE专栏43】Java常用类SimpleDateFormat解析,轻松解决日期格式化问题
【JavaSE专栏43】Java常用类SimpleDateFormat解析,轻松解决日期格式化问题
487 0
|
Java
Java8常用日期格式化&字符串日期相互转换
Java8常用日期格式化&字符串日期相互转换
511 0
|
Java
JAVA 日期格式化
JAVA 日期格式化
414 0
JAVA 日期格式化
|
Java
震惊!java中日期格式化的大坑!
震惊!java中日期格式化的大坑!
354 1
|
前端开发 Java
Java SimpleDateFormat进行日期格式化
本文目录 1. 为啥要用SimpleDateFormat 2. 日期格式化显示 3. 将字符串转换为对应日期
378 0
Java SimpleDateFormat进行日期格式化
|
Java Python
Java日期格式化
翻译人员: 铁锚 翻译时间: 2013年11月17日 原文链接:  Simple example to show how to use Date Formatting in Java 代码示例如下,说明参见注释: import java.
1032 0