たとえば、最初のケースでは、2013 年 6 月 1 日 9 時間 58 分 10 秒の形式に適合する文字列行0106201395810
(または) があります。Variant withは、 HH24に 2 つの文字が含まれるため、適切ではありません。31052013155754
new SimpleDateFormat ("ddMMyyyyHmmss")
to_date ('0106201395810 ',' DDMMYYYYHH24MISS ')
質問する
6384 次
2 に答える
2
これらの行に沿って文字列を再構築して、適切な場所にゼロを配置し、次の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側の形式を変更したいと思います。個人主義は時には良いこともありますが、明らかにそうではありません。これは長期的には痛みを引き起こすだけです...
于 2013-09-25T07:53:42.863 に答える
1
ddMMyyyyHmmss を使用する特定の必要性についてはよくわかりません。私自身は24時間の日付形式にHHを使用します
ジャワ
String s1 = "0106201395810";
Date d1 = (new SimpleDateFormat("ddMMyyyyHmmss")).parse(s1);
String s2 = (new SimpleDateFormat("ddMMyyyyHHmmss")).format(d1);
System.out.println("s2 "+s2);
SQL
select to_date ('01062013095810', 'DDMMYYYYHH24MISS' ) from dual
于 2013-09-25T09:04:06.250 に答える