从Java到SQL的日期转换日期在Java中提供不同的输出?

我有一个字符串forms的日期。 我必须将其更改为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. 

这里月没有正确转换。
请告诉我问题出在哪里,并提供示例代码以获得正确的结果?

mm分钟 。 你想要MM 几个月

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

不要心疼 – 这个确切的错误会出现很多。

mm 代表“分钟” 。 使用MM代替:

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

这是将字符串转换为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()); 

您需要使用MM作为mm代表分钟

有两种生成模式的方法。

 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 

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