java - 使用 java 8 和格式将字符串转换为日期 -> 'uuuu-MM-dd'

标签 java java-8

我想使用 Java 8 将字符串转换为日期。

我可以使用 SimpleDateFormatyyyy-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/

相关文章:

java - 无法使用 NashornscriptEngine 在 Java 8 上执行 es6

java - 分组 Java8 流而不收集它

java - 设置 OpenJDK JVM 故障转储位置

文本区域中的 JavaFX 多种颜色(JavaFX 8)

java - 基于 ID Java 流将数据合并在一起

java - RSA java解密Base64加密String后的垃圾值

java - AlarmManager 不准确

java - 如何通过构建器模式强制设置参数的顺序

java - 如何从 Java Web 应用程序托管用户生成的 HTML 页面?

java - Gradle 错误 - 无法下载 okhttp.jar 文件 2.7.2