将字符串转换为'Date'类型
问题描述:
我已使用Calendar类获取当前日期。现在我想将该日期转换为日期格式,以便它可以以格式“yyyy-mm-dd”存储在数据库中。我试图用SimpleDate格式转换它,但我得到了错误。代码如下。帮帮我。提前致谢。将字符串转换为'Date'类型
class dateDemo
{
public static void main(String args[])
{
String stringdate ;
SimpleDateFormat sdf;
String year,month,day;
Calendar currentDate;
Date validity;
currentDate = Calendar.getInstance();
year = "" + currentDate.get(Calendar.YEAR);
month = "" + currentDate.get(Calendar.MONTH);
day = "" + currentDate.get(Calendar.DAY_OF_MONTH);
stringdate = year+"/"+month+"/"+day;
sdf = new SimpleDateFormat("yyyy-mm-dd");
try
{
validity = sdf.parse (stringdate);
}
catch(Exception e)
{
System.out.println(""+e);
}
System.out.println("Current Date is:"+stringdate);
System.out.println("Date is"+validity);
}
}
答
我跑你的代码,得到java.text.ParseException
。只是为了消除错误,您可以简单地将程序中的“/”更改为“ - ”,但它不会给您正确的日期。
试试这个修订方案,在字符串,java.util.Date和java.sql.Date格式:
class dateDemo {
public static void main(String args[]) {
SimpleDateFormat sdf;
String validity = "";
Date validityDate = null;
java.sql.Date validateDateSql = null;
Date currentDate = Calendar.getInstance().getTime();
sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
validity = sdf.format(currentDate);
validityDate = sdf.parse(validity);
validateDateSql = new java.sql.Date(validityDate.getTime());
} catch (Exception e) {
System.out.println("" + e);
}
}
}
采取注SimpleDateFormat的设置:yyyy-MM-dd
,不yyyy-mm-dd
。它很重要。
答
数据库连接器可以处理日期,不要将其转换为字符串,这不是一个好习惯。
你可以改写这样的代码:
PreparedStatement pstmt = connection.prepareStatement("INSERT INTO MyTable values(?)");
java.sql.Date sqlDate = new java.sql.Date(currentDate.getTime());
pstmt.setDate(1, sqlDate)
什么是错误? – 2013-04-20 12:52:49
如果您计划使用JDBC将其插入到关系数据库中,则不应将其转换为String,而应将其转换为java.sql.Date。 – 2013-04-20 12:56:14
你可以请更新什么错误被抛出.. ?? – 2013-04-20 12:57:54