1

たとえば、最初のケースでは、2013 年 6 月 1 日 9 時間 58 分 10 秒の形式に適合する文字列行0106201395810(または) があります。Variant withは、 HH24に 2 つの文字が含まれるため、適切ではありません。31052013155754new SimpleDateFormat ("ddMMyyyyHmmss")to_date ('0106201395810 ',' DDMMYYYYHH24MISS ')

4

2 に答える 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 に答える