Java解析oracle时间戳到date.util.date
我想将oracle时间戳(Java解析oracle时间戳到date.util.date,java,oracle,date,timestamp,Java,Oracle,Date,Timestamp,我想将oracle时间戳(01-MAY-12 01.00.47.000000000 PM)解析为java.util.Date 我用了这个: Date dateStart=new SimpleDateFormat("yy-MM-dd HH:mm:ss.S").parse("01-MAY-12 01.00.47.000000000 PM"); 但是我得到了这个错误 java.text.ParseException:不可解析日期:“2012-5-1.13.0.47.0” 如果您正试图使用JDBC访问
01-MAY-12 01.00.47.000000000 PM
)解析为java.util.Date
我用了这个:
Date dateStart=new SimpleDateFormat("yy-MM-dd HH:mm:ss.S").parse("01-MAY-12 01.00.47.000000000 PM");
但是我得到了这个错误
java.text.ParseException:不可解析日期:“2012-5-1.13.0.47.0”
如果您正试图使用JDBC访问它,那么@JB Nizet建议您使用
getTimestamp()
,或者如果您只有字符串并且需要解析到最新版本,那么请按照下面的方法执行
尝试以下格式
01-MAY-12 01.00.47.000000000 PM
yy-MMM-dd hh.mm.ss.SSSSSSSSSS a
- 您不必解析任何内容。使用其中一个方法,您将直接拥有一个对象,它扩展了
java.util.Date
java.sql.Timestamp ts = myResultSet.getTimestamp( … );
这将具有跨数据库和地区的可移植性的额外优势。“yy-MM-dd”
“2012年5月1日”
你的日数真的是“12”吗?你的年数真的是“01”
为什么您的错误显示为“2012-5-1.13.0.47.0”,这可能是另一种格式的日期?如果使用JDBC 4.2或更高版本以及Java 8或更高版本,那么对于非零纳秒的时间戳,即
01-MAY-12 01.00.47.99999999
PMOr,它不能正常工作,您可以通过ResultSet::getObject
方法检索java.time.Instant
。