【发布时间】:2021-12-14 18:52:12
【问题描述】:
我从 Oracle DB 中得到一个 TIMESTAMP,格式如下:yyyy-MM-dd hh:mm:ss.SSS,并希望转换为像 dd.MM 这样的字符串。年年。我执行了字符串操作,结果按预期正确。这种方法是正确还是错误?还是用作格式化程序更有效? 如果 Oracle 由于 NLS_LANG 设置不同而在将来返回不同的字符串,我是否必须使用格式化程序?
String date = data.toString().substring(0,10).replace("-","."); // data is received from DB
String day = datum.substring(8,10);
String month = datum.substring(4,8);
String year = datum.substring(0,4);
String myDate = new StringBuilder().append(day).append(month).append(year).toString();
【问题讨论】:
-
“我从 Oracle DB 中获得了这种格式的 TIMESTAMP:” 那么您似乎并没有真正获得 TIMESTAMP,或者您不了解您实际上是什么得到。我这样说是因为 oracle 数据类型 TIMESTAMP 和 DATE don_not_ 具有 any 人类可读的格式。它们是 oracle 的内部二进制格式。当它们从 TO_CHAR 函数返回时,它们只会变成 'yyyy-mm-dd' 或 'dd-mon-yyyy' 或 'ddmmyyyy' 或任何其他人类可读的格式。
标签: java string oracle timestamp formatter