
お世話になります。
カレンダークラスを使用してDBへ格納するためのシリアル値を取得しようとしています。
やりたいことは任意の年月日(時分秒は無し)をPostgreSqlのDATEフィールドに日付として格納させ、レコード取得した結果の該当DATEフィールドと先ほどの任意の年月日を比較させたいのです。予想される結果は「一致」なのですがこれが不一致となってしまいます。
例えばjava.util.CalenderクラスのgetTime()を使用して取得されるシリアル値は1174611700734ですが、DBへ格納された後にレコードから取得されるデータは1174575600000となっていて比較しても不一致となってしまいます。
java.util.CalenderのgetTime()結果は実行するたびに値が異なるようで、下3桁が上記例のように"734"だったり"015"だったりします。
getTime()の結果で返されるシリアル値の下3桁を"000"とする方法はあるのでしょうか?
java.util.Calendar xcal = java.util.Calendar.getInstance();
xcal.set(2007, 3 - 1, 23, 0, 0, 0);
java.util.Date xday = xcal.getTime();
#xdayには"1174575600015"と格納されています。
#xdayをそのままPostgreSqlへデータ投入すると、日付のみ格納され次回取得時には"1174575600000"となります。
No.1ベストアンサー
- 回答日時:
xcal.set(Calendar.MILLISECOND, 0);
でミリ秒を0にあわせてみては?
DATEがミリ秒に対応していないんじゃないんでしょうか?
詳しくは分かりませんが。
ご回答ありがとうございます。
試行錯誤しているうちにclearメソッドの存在に気づき、xcal.set(2007, 3 - 1, 23, 0, 0, 0);の前でxcal.clear();としたところ下3桁が"000"となりました。
アドバイスいただいた方法も試してみましたが結果OKでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
利用者側のMACアドレスを取得し...
-
VB.NETでルータのグローバルIP...
-
ListView 項目の選択/選択解除...
-
EnumWindowsのコールバック関数
-
ドロップダウンリストの初期表...
-
郵便番号検索APIにてget Elemen...
-
Excel VBA でログインしてい...
-
LINQで取得したときの順序
-
現在時刻をミリ秒まで取得
-
PHP8でWarning:Undefined varia...
-
COMポート 名前を取得する方法
-
VB.NETで DataRow()を利用して...
-
テキストボックスのvalueとtext...
-
Excel VBAのリストボックスの値...
-
マクロで奇数と偶数の値を2か所...
-
Application.Matchで特定行の検索
-
VBAでページ番号、ページ最終行...
-
RC表示に変数を入れる
-
VBA 配列に格納した値の平均の...
-
ACCESSテーブルを RecordSet以...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
PHP8でWarning:Undefined varia...
-
count(*)で取得した値をJAVAの...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
JSP+Servletでのページングの常識
-
データ数をカウントしたいのですが
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
getParameter と getAttribut...
-
like演算子内に変数って使えな...
-
JavaScriptにおいてコンピュー...
-
郵便番号検索APIにてget Elemen...
-
DataGridView 複数選択で行番...
-
URIでのページの移動について
-
Spreadの選択行の取得について
-
指定のURLのタイトルを取得...
-
EXCELのリストボックスを選択し...
-
ListViewで複数選択された項目...
おすすめ情報