simpledateformat的格式
一、简介
SimpleDateFormat是Java中的一个类,用于将日期和时间格式化为指定的字符串格式。它可以将Date对象转换为特定格式的字符串,也可以将特定格式的字符串转换为Date对象。SimpleDateFormat类提供了多种格式化日期和时间的方法。
二、SimpleDateFormat的常用格式
1. yyyy-MM-dd HH:mm:ss
表示年月日时分秒,例如:2022-01-01 12:00:00。
2. yyyy-MM-dd
表示年月日,例如:2022-01-01。
3. HH:mm:ss
表示时分秒,例如:12:00:00。
4. yyyy/MM/dd HH:mm:ss
表示年月日时分秒,例如:2022/01/01 12:00:00。
5. yyyy年MM月dd日 HH时mm分ss秒
表示年月日时分秒,例如:2022年01月01日 12时00分00秒。
6. EEE, dd MMM yyyy HH:mm:ss zzz
表示星期几、日期、月份、年份、时分秒和时区,例如:Sat, 01 Jan 2022 12:00:00 GMT+08:00。
7. MMM d, yyyy h:mm:ss a
表示月份、日期、年份、小时(12小时制)、分钟和上午/下午标识符(a代表上午,p代表下午),例如:Jan 1, 2022 12:00:00 PM。
8. yyyy-MM-dd'T'HH:mm:ss.SSSZ
表示ISO8601标准的日期和时间格式,其中T代表时间开始符号,SSS代表毫秒数,Z代表时区,例如:2022-01-01T12:00:00.000+0800。
三、SimpleDateFormat的使用
1. 将Date对象转换为字符串
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String str = format.format(date);string转date的方法
System.out.println(str);
// 输出结果:2022-01-01 12:00:00
2. 将字符串转换为Date对象
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = "2022-01-01 12:00:00";
Date date = format.parse(str);
System.out.println(date);
// 输出结果:Sat Jan 01 12:00:00 CST 2022
3. 设置时区
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
format.TimeZone("GMT+8"));
Date date = new Date();
String str = format.format(date);
System.out.println(str);
// 输出结果:2022-01-01 12:00:00
四、SimpleDateFormat的线程安全问题
SimpleDateFormat类不是线程安全的,如果多个线程同时使用同一个SimpleDateFormat对象进行格式化或解析操作,可能会导致数据错误。解决这个问题的方法是使用ThreadLocal来保证每个线程都有自己的SimpleDateFormat对象。
五、总结
SimpleDateFormat是Java中用于格式化日期和时间的类,提供了多种常用格式。它可以将Date对象转换为特定格式的字符串,也可以将特定格式的字符串转换为Date对象。在使用时需要注意线程安全问题,可以使用ThreadLocal来解决。