从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
表示分钟。 那应该可以解决你的问题。