Java 将字符串转换为类型';日期';
我已使用Calendar类获取当前日期。现在,我想将该日期转换为日期格式,以便以“yyyy-mm-dd”格式存储在数据库中。我尝试使用SimpleDate格式转换它,但出现了错误。代码如下。救命啊。提前谢谢Java 将字符串转换为类型';日期';,java,date,calendar,Java,Date,Calendar,我已使用Calendar类获取当前日期。现在,我想将该日期转换为日期格式,以便以“yyyy-mm-dd”格式存储在数据库中。我尝试使用SimpleDate格式转换它,但出现了错误。代码如下。救命啊。提前谢谢 class dateDemo { public static void main(String args[]) { String stringdate ; SimpleDateFormat sdf; String year,month,day;
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
,而不是yyy-MM-dd
。这很重要。阅读罗克辛的答案,以获得正确的代码
我建议您在编写代码时始终查看JavaAPI的文档。它非常有用,您经常会发现如何使用代码:
数据库连接器可以处理日期,不要将其转换为字符串,这不是一个好的做法 您可以这样重写代码:
PreparedStatement pstmt = connection.prepareStatement("INSERT INTO MyTable values(?)");
java.sql.Date sqlDate = new java.sql.Date(currentDate.getTime());
pstmt.setDate(1, sqlDate)
如果您计划使用JDBC将其插入到关系数据库中,则不应将其转换为字符串,而应转换为java.sql.Date代码>进入<代码>日期有效期=空如果您得到
本地变量的有效性可能尚未初始化
。更改stringdate=year+“/”+month+“/”+day代码>进入stringdate=年+“-”+月+“-”+日代码>谢谢!如果您能按“检查”按钮“接受”答案,我们将不胜感激。