如何使用Java函数实现日期格式化输出
在Java中,日期格式化是非常重要的操作。由于不同国家和地区使用不同的日期格式,因此需要格式化日期以在不同地区进行正确的显示和处理。Java中提供了许多日期格式化函数,可以按照需要对日期进行格式化输出。本文将介绍如何使用Java函数实现日期格式化输出。
Java中日期格式化的基本原理是将日期对象转换为字符串,并按照指定格式输出。Java中提供了许多日期格式化函数,主要包括SimpleDateFormat和DateTimeFormatter两种,下面将分别介绍这两种日期格式化函数的使用方法。
1. SimpleDateFormat
SimpleDateFormat是一个非常常用且易于使用的日期格式化函数,它可以根据指定的格式将一个日期对象转换为字符串。
示例代码:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatTest {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = dateFormat.format(date);
System.out.println(strDate);
}
}
输出结果:
2021-06-07 15:32:53
SimpleDateFormat中常用的日期格式符号如下:
| 格式符号 | 含义 |
| -------- | ---- |
| yyyy | 年 |
| MM | 月 |
| dd | 日 |
| HH | 时 |
| mm | 分 |
| ss | 秒 |
2. DateTimeFormatter
DateTimeFormatter是Java 8中新增的日期格式化函数,它提供了更加丰富和灵活的日期格式化方式,支持多线程并发操作,也可以通过链式调用构建出复杂的日期格式。
示例代码:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateFormatTest2 {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String strDate = dateFormat.format(now);
System.out.println(strDate);
}
}
输出结果:
2021-06-07 15:50:18
DateTimeFormatter中常用的日期格式符号如下:
| 格式符号 | 含义 |
| -------- | ----------------------------- |
| yyyy | 年份(四位数) |
| yy | 年份(两位数) |
| MM | 月份(01-12) |
| MMM | 月份缩写(Jan-Dec) |
| MMMM | 月份全称(January-December) |
| dd | 日期(01-31) |
| D | 一年中的第几天 |
| E | 星期几(Sun-Sat) |
| HH | 小时(00-23) |
| kk | 小时(01-24) |
| hh | 小时(01-12) |
| KK | 小时(00-11) |
| mm | 分钟(00-59) |
| ss | 秒钟(00-59) |
| S | 毫秒 |
| a | 上午/下午 |
| z | 时区 |
需要注意的是,SimpleDateFormat是非线程安全的,因此在多线程并发的环境下使用时需要使用线程安全的DateFormat子类,或者使用ThreadLocal对DateFormat进行封装。而DateTimeFormatter是线程安全的,可以直接使用。
