Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでミリ秒から日付と時刻を取得・フォーマットする方法

Javaでミリ秒(milliseconds)の値を人間が読める日付・時刻の形式に変換したい場合、java.text.SimpleDateFormatクラスを使用するのが一般的な方法です。このクラスは、文字列を日付に変換する「パース」と、日付を文字列に変換する「フォーマット」の両方に対応しています。

SimpleDateFormatクラスのコンストラクタの一つは、希望する日付フォーマットを表すString型の値を受け取り、SimpleDateFormatオブジェクトを生成します。

ミリ秒を日付にフォーマットする手順

  • フォーマット文字列として「dd MMM yyyy HH:mm:ss:SSS Z」を作成します。
  • Dateクラスのコンストラクタは、ミリ秒を表すlong値を引数として受け取り、Dateオブジェクトを生成します。
  • 最後に、format()メソッドを使ってDateオブジェクトを整形します。

サンプルコード1:固定のミリ秒値を変換する

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Sample {
   public static void main(String args[]) throws ParseException {
      long msec = 3550154;
      //SimpleDateFormatクラスのインスタンスを生成
      SimpleDateFormat dateformatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss:SSS Z");
      //ミリ秒値からDateオブジェクトを生成
      Date date = new Date(msec);
      System.out.println("Date value: "+dateformatter.format(date));
   }
}

実行結果

Date value: 01 Jan 1970 06:29:10:154 +0530

この例では、エポック(1970年1月1日00:00:00 UTC)からの経過ミリ秒である3550154をDateオブジェクトに変換し、指定したフォーマットで出力しています。タイムゾーン情報(Z)も含めて表示されるため、実行環境のデフォルトタイムゾーンに応じた結果になります。

サンプルコード2:現在時刻のミリ秒を取得して変換する

import java.util.Calendar;
import java.util.Date;
public class Sample {
   public static void main(String args[]) {
      Calendar calendar = Calendar.getInstance();
      long msec = calendar.getTimeInMillis();
      Date obj = new Date(msec);
      System.out.println(obj);
   }
}

実行結果

Wed Nov 11 22:04:59 IST 2020

この例では、CalendarクラスのgetTimeInMillis()メソッドを使って現在時刻のミリ秒値を取得し、それをDateオブジェクトに変換しています。Dateオブジェクトをそのまま出力すると、デフォルトの形式で日付と時刻が表示されます。

補足:Java 8以降の代替手段

Java 8以降では、よりモダンな日付時刻APIであるjava.timeパッケージ(JSR-310)の使用も推奨されています。例えば、Instant.ofEpochMilli(msec)でInstantオブジェクトを取得し、DateTimeFormatterで任意の形式にフォーマットできます。SimpleDateFormatはスレッドセーフではないため、マルチスレッド環境ではDateTimeFormatterの方が安全です。

  1. 【Android開発】現在の日付と時刻を取得して画面に表示する方法を解説

    このチュートリアルでは、Androidアプリで現在の日付と時刻を取得し、画面に表示する方法を段階的に解説します。ボタンをタップすると、フォーマットされた日時がTextViewに表示されるシンプルなサンプルアプリを作成します。手順1:新しいプロジェクトを作成するAndroid Studioを開き、メニューから「File」→「New Project」を選択して、必要な情報を入力し、新しいプロジェクトを作成します。テンプレートは「Empty Activity」を選んでおくとスムーズです。手順2:レイアウトファイル(activity_main.xml)を編集するres/layout/activity_

  2. 【Android開発】日付と時刻をフォーマットして表示する方法をわかりやすく解説

    はじめに このチュートリアルでは、Androidアプリで日付と時刻をフォーマットして画面に表示する方法を、実際のコード例とともに段階的に解説します。JavaのSimpleDateFormatクラスを使えば、曜日や年月日、時分秒などを自由な形式で表示できます。 手順1:新しいプロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 手順2:レイアウトファイル(activity_main.xml)を編集する 次に、res/layout/activ