将 java.util.Calendar ISO 8601 格式转换为 java.sql.Timestamp
我有一个 ISO 8601 日期格式 2015-09-08T01:55:28Z
的日期.我使用此代码将 ISO 8601 命运转换为日历对象:
I have a date in ISO 8601 date format 2015-09-08T01:55:28Z
. I used this code to convert the ISO 8601 fate to a Calendar object:
Calendar cal = javax.xml.bind.DatatypeConverter.parseDateTime("2015-09-08T01:55:28Z");
现在我需要使用 cal.getTime()
来获取我的时间,但我需要将其转换为 java.sql.Timestamp
.我试着这样做:
and now I need to use the cal.getTime()
to get my time, but I need to convert it to a java.sql.Timestamp
. I tried to do this:
final Timestamp finalDate = (Timestamp) cal.getTime();
但我得到了这个错误:
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Timestamp
想法?
推荐答案
正如异常所说:Calendar::getTime()
返回一个 java.util.Date
对象,而不是 java.sql.Timestamp
对象.所以你不能将它转换为 Timestamp 对象.
As the exception says: Calendar::getTime()
returns a java.util.Date
object, not a java.sql.Timestamp
object. So you cannot cast it to a Timestamp object.
用途:
Timestamp timestamp = new Timestamp(cal.getTimeInMillis());
并且还考虑替换 Calendar
带有新的 日期 &Java SE 8 中引入的时间 API.
相关文章