[解決済み] 時刻を00:00:00に設定
質問
Javaで時間をリセットするのに問題があります。与えられた日付のために、私は時間を00:00:00に設定したいと思います。
これは私のコードです。
/**
* Resets milliseconds, seconds, minutes and hours from the provided date
*
* @param date
* @return
*/
public static Date trim(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR, 0);
return calendar.getTime();
}
問題は、時々、その時間が
12:00:00
であり、時には
00:00:00
で保存されたエンティティをデータベースに問い合わせたところ
07.02.2013 00:00:00
で、実際に保存されているエンティティの時刻は
12:00:00
である場合、クエリは失敗します。
私が知っているのは
12:00:00 == 00:00:00
!
AppEngineを使用しています。これは、appengineのバグ、問題、または他の問題でしょうか? それとも他のものに依存しているのでしょうか?
どのように解決するのですか?
の代わりに別の定数を使用します。
Calendar.HOUR
を使う。
Calendar.HOUR_OF_DAY
.
calendar.set(Calendar.HOUR_OF_DAY, 0);
Calendar.HOUR
は 0-11 (AM/PM で使用) を使用し
Calendar.HOUR_OF_DAY
は0-23を使用します。
Javadocsを引用すると。
public static final int HOUR
午前または午後の時間を示す、取得および設定用のフィールド番号です。 午前または午後の時間帯を示す取得および設定用のフィールド番号です。HOURは12時間制の 時計に使用されます(0~11)。正午と真夜中は12ではなく、0で表されます。 例えば、午後10時4分15秒250の場合、HOURは10です。
と
public static final int HOUR_OF_DAY
時刻を示すgetとsetのためのフィールド番号 一日の時間を示すフィールド番号です。HOUR_OF_DAYは24時間制の時計に使用されます。 時計に使用されます。例えば、午後10時04分15秒250の場合、HOUR_OF_DAYは22です。
テスト("now"は現在、2013年7月23日14時55分(太平洋夏時間)頃です)。
public class Main
{
static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args)
{
Calendar now = Calendar.getInstance();
now.set(Calendar.HOUR, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
System.out.println(sdf.format(now.getTime()));
now.set(Calendar.HOUR_OF_DAY, 0);
System.out.println(sdf.format(now.getTime()));
}
}
出力します。
$ javac Main.java
$ java Main
2013-07-23 12:00:00
2013-07-23 00:00:00
関連
-
IllegalArgumentException この例外を解決する方法
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
javaでクラスを作成すると、enclosing classでないように見える
-
Javaエラーメッセージがenclosingクラスでない
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
テストが見つかりませんでした
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決
-
[解決済み] Javaでメソッドの実行時間を計るにはどうしたらいいですか?
-
[解決済み】JavaのDateから年、月、日などを取得し、グレゴリオ暦の日付と比較したい。これは可能ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
Java Exceptionが発生しました エラー解決
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
テストが見つかりませんでした
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決