素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

投稿日: 2019年1月30日
最終更新日:

【LocalDate/LocalDateTime】Java8以降で秒単位またはミリ秒単位のUnixTimeを取得する方法まとめ【EpochSecond/EpochMilli】

[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット

created by Rinker
THE NORTH FACE(ザノースフェイス)
¥33,430 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

防水暴風で耐久性抜群なので旅行で大活躍です!

ペヤング ソースやきそば 120g×18個

created by Rinker
ペヤング
¥2,600 (2024/04/03 21:42:16時点 Amazon調べ-詳細)

とりあえず保存食として買っておけば間違いなし!

レッドブル エナジードリンク 250ml×24本

created by Rinker
Red Bull(レッドブル)
¥4,000 (2024/04/03 21:42:12時点 Amazon調べ-詳細)

翼を授けよう!

モンスターエナジー 355ml×24本 [エナジードリンク]

created by Rinker
モンスター
¥4,748 (2024/04/03 21:33:15時点 Amazon調べ-詳細)

脳を活性化させるにはこれ!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK

created by Rinker
Bauhutte(バウヒュッテ)
¥14,935 (2024/04/03 21:42:10時点 Amazon調べ-詳細)

メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!

BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール

created by Rinker
BANDAI SPIRITS(バンダイ スピリッツ)
¥7,500 (2024/04/03 21:42:14時点 Amazon調べ-詳細)

もう一人の僕を呼び覚ませ!!

スポンサーリンク

336×280




UnixTimeに変換しよう

Java8で便利になった日付API

皆さんはJava8で一新された日付APIを利用していますか?

以前、当ブログでもご紹介致しました。

筆者はすっかり使いやすさの虜になってしまい、CalendarクラスやDateクラスはめっきり使わなくなりました。

直感的に扱いやすい点が魅力的ですよね♪

UnixTimeに変換するには?

そんな中で、システム開発をしているとUnixTimeで日付時刻を取り扱っている場合が出てきます。

UNIX時間(ユニックスじかん)またはUNIX時刻(ユニックスじこく、UNIX time(ユニックスタイム)、POSIX time(ポジックスタイム))とはコンピューターシステム上での時刻表現の一種。UNIXエポック、すなわち協定世界時 (UTC) での1970年1月1日午前0時0分0秒から形式的な経過秒数(すなわち、実質的な経過秒数から、その間に挿入された閏秒を引き、削除された閏秒を加えたもの)として表される。GPS時刻などとは異なり、大多数のシステムでは、本当の経過秒数を表すものではない
UNIX時間 – Wikipedia

しかし、この新しい日付APIを用いれば簡単UnixTimeに変換する事が出来ちゃいます!

今回はLocalDate及びLocalDateTimeそれぞれで、秒単位のパターンとミリ秒単位のパターンに変換する方法をご紹介致します。

手順

秒単位

まずは秒までUnixTimeを取得する方法をご紹介します。

LocalDate

LocalDateの場合は以下のように記述します。

まずはLocalDateZonedDateTimeに変換します。

この際に、UTCなのかJSTなのかで引数の値を変える必要があるので気をつけましょう。

そして、ZonedDateTimetoEpochSecondメソッドを使うことで秒単位のUnixTimeを取得することが可能になります♪

確認

それでは実行してみましょう。

それっぽい値が取れましたね。

では、このUnixTimeから日付に変換してみます。

正しく変換出来ていますね♪

LocalDateTime

LocalDateTimeの場合は以下のように記述します。

こちらも基本的にはLocalDateの時と同じです。

まずはLocalDateZonedDateTimeに変換します。

この際に、UTCなのかJSTなのかで引数の値を変える必要があるので気をつけましょう。

そして、ZonedDateTimetoEpochSecondメソッドを使うことで秒単位のUnixTimeを取得することが可能になります♪

確認

それでは実行してみましょう。

それっぽい値が取れましたね。

では、このUnixTimeから日付に変換してみます。

こちらも正しく変換出来ていますね♪

ミリ秒単位

次はミリ秒までのUnixTimeを取得してみます。

LocalDate

LocalDateの場合は以下のように記述します。

まずはLocalDateZonedDateTimeに変換します。

この際に、UTCなのかJSTなのかで引数の値を変える必要があるので気をつけましょう。
ここまでは秒単位の流れと同じですね。

そして、ここがポイントなのですが、ZonedDateTimetoInstantメソッドで一旦Instant化してからtoEpochMilliメソッドを使うことでミリ秒単位UnixTimeを取得することが可能になります♪

確認

それでは実行してみましょう。

こちらもそれっぽい値が取れました。

では、こちらもUnixTimeから日付に変換してみます。

dateコマンドでミリ秒のUnixTimeから復元する方法がイマイチわからなかったので、コチラ のサイトで変換して確認しました。

正しく変換出来ていますね♪

LocalDateTime

LocalDateTimeの場合は以下のように記述します。

まずはLocalDateZonedDateTimeに変換します。

この際に、UTCなのかJSTなのかで引数の値を変える必要があるので気をつけましょう。
ここまでは秒単位の流れと同じですね。

そして、ここがポイントなのですが、ZonedDateTimetoInstantメソッドで一旦Instant化してからtoEpochMilliメソッドを使うことでミリ秒単位UnixTimeを取得することが可能になります♪

確認

それでは実行してみましょう。

こちらもそれっぽい値が取れました。

では、こちらもUnixTimeから日付に変換してみます。

こちらも正しく変換出来ていますね♪

終わりに

以上のように、新しい日付APIを利用していれば、独自実装することなく既存のメソッドを利用することで簡単にUnixTimeを取得することが出来ました。

意外と知らない方が多いと思うので、困っている方はこちらの方法で試してみてください♪

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , ,

blogenist

Author: blogenist

関連記事

YouTubeも見てね♪

お名前.comサイドバー