Java如何格式化时间--SimpleDateFormat

简介: 默认时间格式为星期、月、日、小时、分、秒、年。不符合国人的阅读规范,一般我们看时间的习惯为:年、月、日、时、分、秒。这样的,Java中可用SimpleDateFormat 格式化日期。

@[TOC]

0 写在前面

上一篇写了一下Java中如何处理时间,但是默认时间格式为星期、月、日、小时、分、秒、年。不符合国人的阅读规范,一般我们看时间的习惯为:年、月、日、时、分、秒。这样的,Java中可用SimpleDateFormat 格式化日期。

1 讲解

SimpleDateFormat 允许选择任何用户自定义日期时间格式来运行。
格式:new SimpleDateFormat("自定义格式").format(Date类时间)
但是这个自定义格式不是随便定义的,需要用英文字母去代表一些什么。
注意!以下字母区分大小写,例如大写H代表24小时制,小写h代表12小时制

        G  | 纪元标记    
        y  | 四位年份 
        M  | 月份 July or 
        d  | 一个月的日期 
        h  | A.M./P.M.(1~12)格式小时 
        H  | 一天中的小时(0~23)
        m  | 分钟数 
        s  | 秒数 
        S  | 毫秒数 
        E  | 星期几
        D  | 一年中的日子 
        F  | 一个月中第几周的周几 
        w  | 一年中第几周 
        W  | 一个月中第几周 
        a  | A.M./P.M.标记 
        k  | 一天中的小时
        K  | A.M./P.M.(0~11)格式小时 
        z  | 时区 Eastern Standard Time
        '  |    文字定界符    Delimiter
        "  |    单引号    `

我现在常用的就是: "yyyy-MM-dd HH:mm:ss",比较符合开发和国人阅读习惯。

2 举例

这里准备输出当前时间,以"年-月-日 时:分:秒"的格式输出。
代码:

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

public class TestSimpleDateFormat {
    public static void main(String[] args) {
        Date date = new Date();//获取当前时间

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//创建自定义格式

        String formatTime= simpleDateFormat.format(date);//格式化时间

        System.out.println(formatTime);//输出格式化后的时间
    }
}

当然,也可以直接使用一长串:

String formatTimeString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

两个结果是一样的:
在这里插入图片描述

3 写在末尾

自定义格式化时间嘛。怎么样格式化都可以,例如"yy-M-dd hh:mm:ss"这样的格式,结果也可以识别出来,22-11-30 07:39:31 但是这样有很大的问题,如果时间久了没办法分辨是1922年还是2022年,是早晨7点还是晚上七点。这样令人混淆。
所以当进行开发的时候,最好大家统一一个格式,不容易出错,还方便。
有兴趣的小伙伴可以尝试一下每个字母的具体使用。

相关文章
|
2月前
|
安全 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的不可变性和线程安全性,以及它们提供的操作日期时间的灵活性和简洁性。
|
3月前
|
安全 Java
java系列知识之~SimpleDateFormat日期格式化
这篇文章介绍了Java中`SimpleDateFormat`类的使用,包括如何创建实例、格式化日期对象为字符串、解析字符串为日期对象,并提供了常见日期模式和使用示例,同时指出了`SimpleDateFormat`不是线程安全及其它一些注意事项。
|
5月前
|
存储 安全 Java
java编程SimpleDateFormat详解
java编程SimpleDateFormat详解
|
5月前
|
安全 Java 测试技术
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
【6月更文挑战第7天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
48 0
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
|
6月前
|
存储 Java C语言
Java的缓冲区与格式化输出技术详解
Java的缓冲区与格式化输出技术详解
60 2
|
XML Java API
Java实现XML格式化
Java实现XML格式化
302 0
|
Java
java语言的格式化解释和转换符
java语言的格式化解释和转换符
120 0
|
Java
DecimalFormat的使用讲解数字格式化和demo(java小数控制,金额返回相关处理)
DecimalFormat的使用讲解数字格式化和demo(java小数控制,金额返回相关处理)
321 0
|
6月前
|
Java
DecimalFormat(Java中的应用——十进制数字格式化)
DecimalFormat(Java中的应用——十进制数字格式化)
198 0
|
6月前
|
Java
Java中SimpleDateFormat的具体用法
Java中SimpleDateFormat的具体用法
54 0