30

我有一个字符串形式的日期。我必须将其更改为 Sql Date。所以为此我使用了以下代码。

String startDate="01-02-2013";
SimpleDateFormat sdf1 = new SimpleDateFormat("dd-mm-yyyy");
java.util.Date date = sdf1.parse(startDate);
java.sql.Date sqlStartDate = new java.sql.Date(date.getTime());  

当我使用上面的代码并运行它时。我得到以下输出。

2013-01-01.  

此处月份未正确转换。
请告诉我问题出在哪里并提供示例代码以获得正确的结果?

4

5 回答 5

52

mm分钟。你想要MM几个月

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");

不要难过——这个错误经常出现。

于 2012-05-02T12:05:28.853 回答
9

mm 代表“分钟”。改用MM

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
于 2012-05-02T12:05:04.430 回答
5

您需要使用MMas mmstand 来表示分钟

有两种生成月份模式的方法。

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); //outputs month in numeric way, 2013-02-01

SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy"); // Outputs months as follows, 2013-Feb-01

完整的代码片段:

        String startDate="01-Feb-2013"; // Input String
        SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); // New Pattern
        java.util.Date date = sdf1.parse(startDate); // Returns a Date format object with the pattern
        java.sql.Date sqlStartDate = new java.sql.Date(date.getTime());
        System.out.println(sqlStartDate); // Outputs : 2013-02-01
于 2018-07-23T14:44:19.497 回答
4

这是将字符串转换为 util date 和 sql date 的简单方法

String startDate="12-31-2014";
SimpleDateFormat sdf1 = new SimpleDateFormat("MM-dd-yyyy");
java.util.Date date = sdf1.parse(startDate);
java.sql.Date sqlStartDate = new java.sql.Date(date.getTime()); 
于 2013-07-16T09:58:56.243 回答
1

在使用日期格式时,您可能要记住始终使用MM几个月和mm几分钟。那应该可以解决您的问题。

于 2018-07-19T08:02:05.620 回答