Java中的SimpleDateFormat类用于日期和时间的格式化和解析。以下是它的一些主要规范:
-
基本格式:
yyyy
:四位数的年份(如2023)yy
:两位数的年份(如23)MM
:月份(01-12)dd
:日(01-31)E
:星期几的全称(如Monday)ee
:星期几的缩写(如Mon)a
:上午/下午的标识符(AM/PM)hh
:12小时制的小时数(01-12)kk
:24小时制的小时数(01-23)mm
:分钟数(00-59)ss
:秒数(00-59)S
:毫秒数(0-999)
-
日期和时间组合格式:
你可以将上述基本格式组合起来以创建更复杂的日期和时间格式。例如:
* `yyyy-MM-dd`:年-月-日(如2023-07-14)
* `yyyy-MM-dd HH:mm`:年-月-日 时:分(如2023-07-14 15:30)
* `yyyy/MM/dd`:年/月/日(如2023/07/14)
* `yyyy-MM-dd'T'HH:mm:ss.SSSXXX`:年-月-日'T'时:分:秒.毫秒XXX(如2023-07-14T15:30:00.000+08:00)
-
特殊字符:
\
:用于转义特殊字符。例如,yyyy\\MM\\dd
将表示yyyy/MM/dd
。'
:用于包围单引号字符。例如,yyyy'年'MM'月'
将表示yyyy年MM月
。
-
时区:
使用Z
或z
可以表示时区。例如,yyyy-MM-dd'T'HH:mm:ss.SSSXXX
中的XXX
表示时区偏移量。
5. 使用示例:
import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date date = new Date(); System.out.println(sdf.format(date)); // 输出当前日期和时间 } }
注意:SimpleDateFormat不是线程安全的,因此在多线程环境中使用时需要注意。如果需要线程安全的日期格式化工具,可以考虑使用java.time
包中的类,如LocalDate
、LocalTime
和DateTimeFormatter
。