您好,我正在尝试将用户的出生日期存储在数据库中,代码如下:
private void btnActionPerformed(java.awt.event.ActionEvent evt) {
String username = txtUserName.getText();
String password = txtPassword.getText();
String email = txtEmail.getText();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String birthdate = sdf.format(JDateChooser.getDate());
Users user = new Users();
user.setUserName(cin);
user.setPassWord(firstName);
user.setEmail(email);
user.setBirthDate(birthdate);
try {
int count = Users.getInstance().insert(user);
if(count == 1){
JOptionPane.showMessageDialog(null,"success");
reset();
}else{
JOptionPane.showMessageDialog(null,"Faild");
}
} catch (Exception ex) {
Logger.getLogger(AddNewPatient.class.getName()).log(Level.SEVERE, null, ex);
}
}
我在“user.setbirthdate(birthdate);”行中遇到一个错误,它说字符串不能转换为日期因为参数birthdate在封装中被指定为date类型(setbirthdate),所以有什么方法可以解决这个问题,我是java编程新手,我正在努力提高我的java技能。
2条答案
按热度按时间k4ymrczo1#
在你和她约会之后
JDateChooser.getDate()
,则立即将其转换为字符串:sdf.format(JDateChooser.getDate());
您应该存储从中返回的日期JDateChooser.getDate()
作为实际日期对象。然后您可以直接在其他函数中使用它:
如果您确实需要将日期作为字符串用于其他用途(可能向用户显示),则可以将格式化的字符串版本存储在不同的变量中:
否则,如果不需要字符串版本,可以删除创建的行
sdf
.00jrzges2#
如果返回
Date
:你需要的是
Date
,则不要将其转换为String
. 把它当作一个Date
:请注意,您还可以删除这一行,因为您没有使用它声明的变量:
一般来说,您希望尽可能多地保持数据类型的原始形式。除非有特定的需要将某个数据表示为字符串(将其显示给用户、通过某种序列化api发送它等等),否则只需按原样使用数据,而不是将其转换为其他数据。