1

以下のように、データベースから文字列に読み取ったタイムスタンプがあります。

ソース データベース テーブルのタイムスタンプ フィールドの値は次のとおりです。

8/21/2012 2:09 AM

上記のタイムスタンプを Java プログラムの String フィールドに読み込んでいます。

ただし、宛先データベース テーブルに書き込むときに、以下のコードを使用して文字列をタイム スタンプに再変換しています。

java.text.DateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date newDate = format.parse(item.getMyTimeStamp());
ps.setTimestamp(1, new java.sql.Timestamp(newDate.getTime()));

ただし、宛先テーブルのタイムスタンプ フィールドの値は次のようになります。

8/21/2012 12:00 AM

晴れると、時間フィールドは午前 12 時にリセットされます。

元のタイムスタンプ値を保持するにはどうすればよいですか?

4

2 に答える 2

1

@Nikunjこれnew java.text.SimpleDateFormat("yyyy-MM-dd");は文字通りあなたのtimestamp...を失っているので、時間を....に設定します。正確な形式12AMを取得する必要があります。

これを試してみてください。文字列にソースデータベースからの正しい日付が含まれていると仮定すると、

String sourceDate = "8/21/2012 2:09";
Timestamp sourceTS = Timestamp.valueOf(sourceDate);
System.out.println(sourceTS.getNanos());

投稿は次のとおりです。 Java String を sql.Timestamp に変換します

于 2013-01-06T13:32:33.183 に答える
0

この TS から String、String から TS がわかりません... でも...

  1. 「format」オブジェクトで使用したパターンを投稿します (SimpleDateFormat?)。
  2. 「item.getMyTimeStamp()」は何をしますか? B) sql.Timestamp オブジェクトを返しますか?

2.B == true の場合:

多分これは正しいでしょう:

ps.setTimestamp(1, new java.sql.Timestamp(item.getMyTimeStamp().getTime()));
于 2013-01-06T13:12:01.630 に答える