Java如何进行时间格式化呢?
下文笔者讲述java中时间格式化的方法分享,如下所示
学习完本篇文章之后,你将掌握Java中时间格式化的方法
学习完本篇文章之后,你将掌握Java中时间格式化的方法
时间格式化简介
时间格式化:
指将时间对象按照一定的格式输出成字符串
在Java中,时间格式化通常使用SimpleDateFormat类进行实现
SimpleDateFormat基于字符串进行格式化,
字符串由日期时间格式字符组成
常用的日期时间格式字符
| 占位符 | 备注 |
| y | 年份 |
| M | 月份 |
| d | 日期 |
| H | 小时 |
| m | 分钟 |
| s | 秒钟 |
| S | 毫秒 |
注意事项:
SimpleDateFormat还支持一些特殊字符
如:
单引号、逗号等
可根据实际情况选择使用
例:SimpleDateFormat使用示例
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(date);
System.out.println(dateString);
常用时间格式化示例
1.日期时间格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(new Date());
System.out.println(dateString);
2023-06-02 16:10:23
2.日期格式化
日期格式化常使用模式字符串为"yyyy-MM-dd"
如下所示:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateString = sdf.format(new Date());
System.out.println(dateString);
2023-06-02
3.时间格式化
时间格式化
常使用的模式字符串为"HH:mm:ss"
如下:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String dateString = sdf.format(new Date());
System.out.println(dateString);
22:42:10
自定义时间格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String dateString = sdf.format(new Date());
System.out.println(dateString);
2023年06月20日 22:43:11
线程安全问题
SimpleDateFormat是非线程安全 当多个线程同时访问同一个SimpleDateFormat实例进行时间格式化 可能会导致结果不正确 解决SimpleDateFormat不准确的情况 我们可以使用ThreadLocal来 保证每个线程独立使用自己的SimpleDateFormat。
SimpleDateFormat线程安全的写法
private static final ThreadLocal<SimpleDateFormat> sdfThreadLocal = new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
};
public static void main(String[] args) {
Date date = new Date();
String dateString = sdfThreadLocal.get().format(date);
System.out.println(dateString);
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


