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。