【问题标题】:Date Conversion from String to sql Date in Java giving different output? [duplicate]Java中从字符串到sql日期的日期转换给出不同的输出? [复制]
【发布时间】:2012-05-11 21:41:33
【问题描述】:
我有一个字符串形式的日期。我必须将其更改为 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.
此处月份未正确转换。
请告诉我问题出在哪里并提供示例代码以获得正确的结果?
【问题讨论】:
标签:
java
date
type-conversion
【解决方案1】:
mm 是 分钟。你想要MM 几个月:
SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
不要难过 - 这个错误经常出现。
【解决方案3】:
您需要使用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
全编码sn-p:
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
【解决方案4】:
这就是将string转换为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());
【解决方案5】:
在使用日期格式时,您可能需要记住始终使用 MM 表示月份,使用 mm 表示分钟。这应该可以解决您的问题。