将 java.util.Calendar ISO 8601 格式转换为 java.sql.Timestamp

2022-01-11 00:00:00 timestamp calendar java

我有一个 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.

相关文章