事前に生成されたCSVデータファイルを読み取るために使用しようとしている汎用CSVファイルリーダーを作成しました。これらのファイルには、次の形式の価格情報とタイムスタンプが含まれています
lTid,cDealable,NAME,TIMESTAMP,BID,ASK <--- The header
1705852073,D,EUR/USD,2011-10-02 17:00:16.123000000,1.334400,1.334600
私のコードでは、ご想像のとおり、価格は数値であり、テキストは文字列であり、日付はJava日付であると想定しています(少し複雑ですが、わかります)。日付については、コードで解析テンプレートを渡すことができます。これまでは問題なく機能していましたが、これらのファイルをどう処理するかについては少し頭がおかしいです(形式を制御できず、非常に大きいです)。ご覧のとおり、日付にはフォームがあります
2011-10-02 17:00:16.123000000
末尾の6つのゼロは常にゼロです(つまり、ファイル時間の精度はミリ秒まで下がります)
理想的にはパターン""を使用できますyyyy-MM-dd HH:mm:ss.SSS
が、残念ながらSimpleDateFormatの解析ロジックは" .123000000
"123,000,000
を123msではなくミリ秒として解釈します。
明らかに、これが一般的なリーダーでない場合は、日付文字列を単純に切り捨てることができますが、その選択肢はありません。解析ステートメントでms桁のみを使用し、末尾のゼロを無視する方法はありますか?