例如有一行字符串0106201395810
(或31052013155754
),符合new SimpleDateFormat("ddMMyyyyHmmss")
的格式,即第一种情况,2013 年 6 月 1 日,9 小时 58 分 10 秒。 to_date ('0106201395810','DDMMYYYYHH24MISS')
的变体不适合,因为它涉及 HH24 中的两个字符。
最佳答案
您可以尝试按照这些行重新组合字符串,使零出现在正确的位置 - 并使用 DDMMYYYYHH24MISS
格式
to_date(
case length(input)
when 14 THEN -- the length is OK: this has 2 digits at the hour
input
when 13 THEN -- length is one short, have to add one '0'
substr(input,0,8) || '0' || substr(input, 9)
END,
'DDMMYYYYHH24MISS')
虽然我必须说,这很丑陋,并且可能具有“不太理想”的性能……我宁愿更改 Java 端格式,因为这种格式显然不是标准一。个人主义有时可能很好——显然情况并非如此。从长远来看,这只会造成痛苦......
关于java - 如何通过 Oracle 函数 to_date() 将 java 格式的 ddMMyyyyHmmss 字符串转换为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18998931/