由于Java中的日期类型只有Date类型,而Mysql中即有date型,又有datetime型,当我们想要在 java中获取Mysql中datetime类型的数据或向Mysql数据库中插入datetime类型的数据时,需要做 转换。
java_日期格式转换
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Example {
public static void main(String[] args) {
String dateString = "2022-01-01";
// 创建一个 DateTimeFormatter 对象,指定日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
// 将字符串解析为 LocalDate 对象
LocalDate date = LocalDate.parse(dateString, formatter);
// 打印 LocalDate 对象
System.out.println(date);
} catch (DateTimeParseException e) {
System.out.println("无效的日期格式");
e.printStackTrace();
}
}
}
在上述示例中,我们首先创建了一个SimpleDateFormat
对象,并指定日期格式为"yyyy-MM-dd"
,这与输入字符串的格式相匹配。
然后,我们使用parse()
方法将字符串解析为日期对象。如果解析成功,将返回一个Date
对象,否则将抛出ParseException
异常。
最后,我们打印日期对象,可以看到它以默认格式输出。
需要注意的是,SimpleDateFormat
类的日期格式模式是区分大小写的。例如,"yyyy-MM-dd"
表示年份是4位数,月份和日期是2位数。如果输入字符串与指定的日期格式不匹配,将会抛出ParseException
异常。
此外,SimpleDateFormat
类还提供了许多其他方法,例如format()
方法可以将日期对象格式化为字符串,setLenient()
方法可以设置解析过程是否宽松等。
当使用SimpleDateFormat
类将字符串转换为日期对象时,还需要注意以下几点:
-
日期格式模式:在指定日期格式时,需要根据输入字符串的格式选择适当的日期格式模式。常见的日期格式模式包括:
- 年份:
yyyy
表示4位数年份,yy
表示2位数年份。 - 月份:
MM
表示2位数月份,M
表示1位或2位数月份。 - 日期:
dd
表示2位数日期,d
表示1位或2位数日期。 - 小时:
HH
表示24小时制的2位数小时,H
表示24小时制的1位或2位数小时,hh
表示12小时制的2位数小时,h
表示12小时制的1位或2位数小时。 - 分钟:
mm
表示2位数分钟,m
表示1位或2位数分钟。 - 秒钟:
ss
表示2位数秒钟,s
表示1位或2位数秒钟。 - 毫秒:
SSS
表示3位数毫秒。 - AM/PM:
a
表示上午/下午标记。
- 年份:
-
日期格式化:除了将字符串转换为日期对象,
SimpleDateFormat
类还提供了format()
方法,用于将日期对象格式化为字符串。可以根据需要指定不同的日期格式模式,将日期对象转换为特定格式的字符串。
综上所述,使用SimpleDateFormat
类可以方便地将字符串转换为日期对象,但需要注意日期格式模式的选择、异常处理和线程安全性。