介绍说明
SimpleDateFormat 是 Java 中用于格式化和解析日期的类。通过指定日期和时间模式,可以将日期对象格式化为字符串或从字符串解析为日期对象。以下是 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
的详细介绍和使用方法。
① 创建 SimpleDateFormat 实例
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
这里的 “yyyyMMdd” 是一个日期模式,表示年份(4位)、月份(2位)和日期(2位)。例如,20240806 表示 2024 年 8 月 6 日。
② 将日期对象格式化为指定格式的字符串
Date date = new Date();
String formattedDate = simpleDateFormat.format(date);
System.out.println("Formatted Date: " + formattedDate);
Formatted Date: 20240806
③ 解析日期
将字符串解析为日期对象。
String dateString = "20240806";
try {
Date parsedDate = simpleDateFormat.parse(dateString);
System.out.println("Parsed Date: " + parsedDate);
} catch (ParseException e) {
e.printStackTrace();
}
Parsed Date: Tue Aug 06 00:00:00 GMT 2024
④常见的日期模式
- yyyy:四位数的年份
- MM:两位数的月份(01-12)
- dd:两位数的日期(01-31)
- HH:两位数的小时(00-23)
- mm:两位数的分钟(00-59)
- ss:两位数的秒(00-59)
⑤示例代码
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
// 创建 SimpleDateFormat 实例
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
// 当前日期格式化为指定格式的字符串
Date date = new Date();
String formattedDate = simpleDateFormat.format(date);
System.out.println("Formatted Date: " + formattedDate);
// 字符串解析为日期对象
String dateString = "20240806";
try {
Date parsedDate = simpleDateFormat.parse(dateString);
System.out.println("Parsed Date: " + parsedDate);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
⑥注意事项
SimpleDateFormat
不是线程安全的,如果在多线程环境中使用,建议为每个线程创建一个实例,或使用 ThreadLocal。- 确保解析的字符串格式与模式匹配,否则会抛出 ParseException 异常。
2、代码案例
/**
* 获取这个格式化类型的日期和时间: 可以根据格式化的方式 来获取不同格式的时间
* yyyyMMdd -> 20231120
* HHmmss -> 145504
* yyyy-MM-dd HH:mm:ss -> 2023-11-20 14:55:04
* yyyy/MM/dd HH:mm:ss -> 2023/11/20 14:55:04
*
* 测试结果:交易日期:20231120
* 交易时间:145025
* 交易完整时间:2023-11-20 14:52:42
* 交易完整时间:2023/11/20 14:55:04
*/
public static void testData01(){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String jyrq = simpleDateFormat.format(new Date()); //交易日期
System.out.println("交易日期:" + jyrq);
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("HHmmss");
String jysj = simpleDateFormat1.format(new Date()); //交易时间
System.out.println("交易时间:" + jysj);
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String data = simpleDateFormat2.format(new Date()); //交易时间
System.out.println("交易完整时间:" + data);
SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String data1 = simpleDateFormat3.format(new Date()); //交易时间
System.out.println("交易完整时间:" + data1);
}