javaのプログラムで日付処理に関する質問です。
ある日付から時分秒を切り捨てた情報を取得する簡単なやり方ってあるでしょうか?
例えば元の日時データが 2014/03/01 12:30:30 だとすると、時分秒を切り捨てて 2014/03/01 00:00:00 というデータを取得したいのです。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
入力日付と出力日付がjava.util.Dateの前提で、標準APIだけで行う場合です。
例ではTimeZoneをJST固定にしています。
TimeZoneの考慮が必要な場合は注意してください。
Java8ならば、
// Java8 static Date truncateTime(Date d) { Instant instant = d.toInstant(); ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("JST", ZoneId.SHORT_IDS)); ZonedDateTime truncated = zonedDateTime.truncatedTo(ChronoUnit.DAYS); return Date.from(truncated.toInstant()); }
Java7以前ならば、
// Java7 static Date truncateTime(Date d) { Calendar dateTime = Calendar.getInstance(); dateTime.setTime(d); Calendar date = Calendar.getInstance(); date.clear(); date.set(dateTime.get(Calendar.YEAR), dateTime.get(Calendar.MONTH), dateTime.get(Calendar.DAY_OF_MONTH)); return date.getTime(); }
投稿2014/08/05 15:04
総合スコア9390
0
DateUtilsクラス(org.apache.commons.lang.time.DateUtils)に日付関連の便利なAPIがありますよ。
DateUtilsクラスの取得方法は、apache.commonsの公式サイトから**commons-lang-x.x.jar(x.xの部分はバージョン番号)**をダウンロードして、パスにjarを追加してください。
(例)
Date now = new Date(); System.out.println("元の日時: " + now); Date nowDate = DateUtils.truncate(now, Calendar.DAY_OF_MONTH); System.out.println("時分秒を切り捨て: " + nowDate);
投稿2014/08/04 07:30
総合スコア259
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/08/07 05:29