1

Javaサーバーに渡される にDate変換されたがあります。この値の例は次のとおりです。StringSocket06:19:18p.m. 13/01/2011

サーバー内で、SQL データベース テーブルに書き込む前に値Socketに変換しようとしてDateいますが、変換された値はNULL. また、値を元の として SQL データベースにString書き込もうとしましたが、コロン、ピリオド、またはスラッシュ文字が含まれていない限り書き込みません。

これを回避する方法はありますか?Jar ファイルを実行しているサーバーへの管理者アクセス権がないため、スタック トレースを表示または投稿できません。

を変換する私のコードStringは次のとおりです。

Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ssa dd/MM/yyyy");
try { 
    date = sdf.parse(timestamp);
} 
catch (ParseException e) {
    e.printStackTrace();
}
4

3 に答える 3

2

SimpleDateFormat パターンの「a」は、「AM」または「PM」のみを解析できますが、「pm」は解析できません。それを変更するだけで、解析が成功します。

于 2011-01-14T18:25:12.603 に答える
2

正しく解析できない理由はわかりませんが、これについてはすべて間違っていると考えています。データベースに文字列を保存する代わりに、TIMESTAMP または DATE 型の列を作成する必要があります。次に、JDBC から getDate() を使用して、日付オブジェクトを取得できます。

于 2011-01-13T18:35:22.323 に答える
0

これは単なるタイプミスかもしれませんが、「06:19:18p.m. 13/012011」の例は、日付に 2 つのスラッシュが必要なため、単純な日付形式と一致しません。

スタック トラックを取得する方法を見つけるか、別の場所でデータに対してこのコードを試してみると、悪いデータだけを取得していないことを確認できるため、非常に役立ちます。

于 2011-01-13T18:42:44.180 に答える