【发布时间】:2021-01-02 18:29:51
【问题描述】:
基于文件名,我必须将字符串分解为不同的元素数组,并且我能够从文件命名约定中提取时间戳,现在我需要将此字符串传递给日期格式以存储到数据库表:
示例:
20200913204839 字符串需要转换为日期格式为13-sep-2020 20:48:39 (column_name),pl/sql 块具有此格式列名-数据类型 (varchar2) 的参数值-插入语句中的值为:
to_date(column_name,'dd-mon-yyyy hh24:mi:ss')
这是等效的matlab代码:
fn.fntestdate = datestr(datenum(column_name,'yymmddHHMM'),'dd-mmm-yyyy HH:MM:SS')
我如何在 Java 中加入相同的逻辑?
我尝试了几个函数 SimpleDateFormat 试图解析它,但收到“无法解析的函数”错误。
我认为 column_name 必须先转换为数字,然后再转换为日期才能解析? 加载前需要多次隐式转换。为此建议最好的方法
【问题讨论】:
-
我建议你不要使用
SimpleDateFormat。这个类是出了名的麻烦而且已经过时了。而是使用DateTimeFormatter和java.time, the modern Java date and time API 中的其他类。 -
您的搜索结果是什么?类似的问题已经被反复询问和回答。正如我已经说过的,忽略显示使用
SimpleDateFormat的答案。 -
我进一步建议您不要在数据库中将日期存储为
varchar2,而是使用其datetime甚至更好的timestamp with time zone数据类型。然后也不要将日期作为字符串发送到数据库,而是发送LocalDateTime或OffsetDateTime(提到的类来自 java.time)。
标签: java string oracle date numbers