我想使用 Java 8 将字符串转换为日期。
我可以使用 SimpleDateFormat
和 yyyy-MM-dd
格式轻松转换
String startDate2="2017-03-24";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(new java.sql.Date(sdf1.parse(startDate2).getTime()));
输出: 2017-03-24
String startDate2="2017-03-24";
SimpleDateFormat sdf1 = new SimpleDateFormat("uuuu-MM-dd");
System.out.println(new java.sql.Date(sdf1.parse(startDate2).getTime()));
但是当我使用 'uuuu-MM-dd'
而不是 'yyyy-MM-dd'
输出:
1970-03-24
(错误)
现在使用 Java 8:
String startDate1="2017-03-23";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd");
但我不知道如何获得与上面正确输出相同的 sql 日期类型的日期。
最佳答案
java.sql.Date
有一个静态 valueOf
方法,该方法采用 Java 8 LocalDate
,因此您可以执行以下操作:
String startDate1 = "2017-03-23";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd");
LocalDate date = LocalDate.parse(startDate1, formatter);
java.sql.Date sqlDate = java.sql.Date.valueOf(date);
关于java - 使用 java 8 和格式将字符串转换为日期 -> 'uuuu-MM-dd',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42993898/