如何在Java中将字符串日期转换为dd-MMM-yyyy格式的时间戳?
我想用java将字符串日期转换为时间戳。以下是我写的代码。传递的日期值格式为2013年9月19日 变量ctr已声明。ps是如何在Java中将字符串日期转换为dd-MMM-yyyy格式的时间戳?,java,sql,Java,Sql,我想用java将字符串日期转换为时间戳。以下是我写的代码。传递的日期值格式为2013年9月19日 变量ctr已声明。ps是PreparedStatement对象。后面的代码包括ps.executeUpdate() tcmo.getCtsDate()返回2013年9月19日的值 数据库只能接受格式为2013-09-19 00:00:00.0的时间戳 引发的异常是不可解析日期“2013年9月19日”。有人能帮我清除这个吗?您的格式字符串(yyy-mm-dd HH:mm:ss)和您的输入(2013年9
PreparedStatement
对象。后面的代码包括ps.executeUpdate()
tcmo.getCtsDate()
返回2013年9月19日的值
数据库只能接受格式为2013-09-19 00:00:00.0的时间戳
引发的异常是不可解析日期“2013年9月19日”。有人能帮我清除这个吗?您的格式
字符串
(yyy-mm-dd HH:mm:ss
)和您的输入(2013年9月19日
)不匹配
将字符串
解析为日期
对象需要dd-MMM-yyyy
格式
例如
try {
String text = "19-SEP-2013";
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");
Date date = sdf.parse(text);
System.out.println(text + " to " + date);
} catch (ParseException exp) {
exp.printStackTrace();
}
输出
19-SEP-2013 to Thu Sep 19 00:00:00 EST 2013
尝试将第一行替换为
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
这将解决解析错误
关于SimpleDataFormat的更多信息,包括什么是有效字母。这是一个“陷阱”,陷阱了许多java新手。格式字符m
表示分钟,m
表示月份
您的格式字符串“yyyy-mm-dd”
实际上是年-分钟-天
将格式字符串更改为
“yyyy-MM-dd…”
将解决此问题。@SotiriosDelimanolis我不确定我是否理解此问题。格式化程序非常重要,它需要能够知道输入以什么形式出现,以便知道如何最好地处理字符串的每个部分。
…我的意思是,因为最终目标是插入到数据库中。您可以从毫秒的时间创建一个timestamp对象。是的,OP会这样做…新建timestamp(date.getTime())
,问题似乎是将字符串
值放入日期
对象中…或者我忽略了一点:PNo您得到了它,我没有。@SotiriosDelimanolis感谢你愿意帮忙:)始终感谢你的帮助;)tcmo.getCtsDate()
返回什么类型的对象?
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");