OffsetDateTime APIクラスを使ってAndroidで現在のローカル日付を取得する方法
本記事では、java.timeパッケージに含まれるOffsetDateTimeクラスを使用して、Androidアプリで現在のローカル日付(LocalDate)を取得し、画面に表示する方法をサンプルコードとともに解説します。
なお、java.time APIはAndroid 8.0(APIレベル26/Oreo)以降で標準サポートされているため、古いOSバージョンへの対応が必要な場合はバージョンチェックやDesugaringの導入を検討してください。
ステップ1:新規プロジェクトを作成する
Android Studioを起動し、「File → New Project」を選択します。必要な情報をすべて入力して、新しいプロジェクトを作成しましょう。
ステップ2:レイアウトファイル(activity_main.xml)を編集する
res/layout/activity_main.xml に以下のコードを追加します。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Local Date"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>上記のコードでは、取得した日付を画面中央に表示するためのTextViewを1つ配置しています。ConstraintLayoutの制約により、TextViewは親レイアウトの上下左右中央に配置されます。
ステップ3:MainActivity.javaにコードを追加する
src/MainActivity.java に以下のコードを追加します。
package com.example.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import java.time.OffsetDateTime;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.date);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
OffsetDateTime offset = OffsetDateTime.now();
textView.setText(String.valueOf(offset.toLocalDate()));
}
}
}コードのポイント
- OffsetDateTime.now():システムのデフォルトタイムゾーンにおける現在の日時(UTCオフセット情報付き)を取得します。
- toLocalDate():取得したOffsetDateTimeから時刻部分を除いた「日付のみ」の値(LocalDate)を取り出します。
- SDK_INTのチェック:java.timeパッケージはAPIレベル26以降で利用可能なため、OSバージョンを確認したうえで処理を実行しています。
アプリを実行して確認する
それでは、アプリケーションを実行してみましょう。ここでは、実際のAndroid端末がPCに接続されていることを前提としています。
Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルを開き、ツールバーにある「Run」アイコンをクリックします。一覧から接続済みのモバイルデバイスを選択すると、端末の画面に結果が表示されます。

実行結果を見ると、TextViewに現在のローカル日付が正しく表示されていることが確認できます。このように、OffsetDateTimeクラスを使えば、タイムゾーンやUTCオフセットを意識しながら簡単に日付情報を取得できます。
-
【Android開発入門】日時ピッカー(DatePicker/TimePicker)の使い方を徹底解説
この記事では、AndroidアプリでDatePickerDialogとTimePickerDialogを使用して、ユーザーに日付と時刻を選択させる方法を、サンプルコードとともにステップ形式でわかりやすく解説します。ボタンをタップするとまず日付選択ダイアログが表示され、その後に時刻選択ダイアログへと連続的に遷移する、実用的な実装例です。 ステップ1:新規プロジェクトの作成 まずはAndroid Studioで新しいプロジェクトを作成しましょう。メニューからFile → New Projectを選択し、必要な項目をすべて入力してプロジェクトを作成してください。 ステップ2:レイアウトファイル(
-
【Android開発】リソースIDからリソース名を取得する方法を解説
AndroidでリソースIDを使用してリソース名を取得する方法この記事では、Androidアプリ開発において、リソースID(Resource ID)から対応するリソース名(Resource Name)を取得する方法を、実際のコード例とともに段階的に解説します。リソース名の取得には、Resourcesクラスが提供するgetResourceName()メソッドを使用します。このメソッドにリソースIDを渡すことで、「パッケージ名:リソースタイプ/リソース名」の形式で文字列として取得できます。動的にビューを生成した場合や、デバッグ時にどのリソースが使われているか確認したい場合などに役立つテクニックです