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の方が安全です。
-
【Android開発】現在の日付と時刻を取得して画面に表示する方法を解説
このチュートリアルでは、Androidアプリで現在の日付と時刻を取得し、画面に表示する方法を段階的に解説します。ボタンをタップすると、フォーマットされた日時がTextViewに表示されるシンプルなサンプルアプリを作成します。手順1:新しいプロジェクトを作成するAndroid Studioを開き、メニューから「File」→「New Project」を選択して、必要な情報を入力し、新しいプロジェクトを作成します。テンプレートは「Empty Activity」を選んでおくとスムーズです。手順2:レイアウトファイル(activity_main.xml)を編集するres/layout/activity_
-
【Android開発】日付と時刻をフォーマットして表示する方法をわかりやすく解説
はじめに このチュートリアルでは、Androidアプリで日付と時刻をフォーマットして画面に表示する方法を、実際のコード例とともに段階的に解説します。JavaのSimpleDateFormatクラスを使えば、曜日や年月日、時分秒などを自由な形式で表示できます。 手順1:新しいプロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 手順2:レイアウトファイル(activity_main.xml)を編集する 次に、res/layout/activ