ココでわかるAndroidアプリ開発

あなたのプログラミングを徹底サポート

【Java】日時をフォーマットするSimpleDateFormatの使い方

  • 作成日:2022/01/31

日時を自分好みの形式に指定できるSimpleDateFormatクラスについて解説します。

SimpleDateFormatとは

SimpleDateFormatとは日時をフォーマットするクラスです。 日時を扱うDateクラスやCalendarクラスと一緒に使う場合が多いです。

例として、Calendarクラスを使い現在の日時を取得して、そのフォーマットを変更してみます。

App.java

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class App {
    public static void main(String[] args) {     
        
        Calendar calendar = Calendar.getInstance();                        
        
        //フォーマットの指定 
        SimpleDateFormat simp = new SimpleDateFormat("yyyy-MM-dd");       
        //フォーマットを実行し、出力
        System.out.println(simp.format(calendar.getTime()));         
    }
}

まず11行目でSimpleDateFormatクラスのインスタンスを生成していますが、その時にフォーマットを指定します。 今回は「yyyy-MM-dd」という形式で日時をフォーマットしようと思います。

フォーマットの実行はformatメソッドで行います(13行目)。 引数はDate型で、フォーマットしたい日時を渡します。 今回は現在の日時をcalendar.getTime())で取得して渡しています。

実行結果

2022-01-30

次章では、フォーマットの指定方法を詳しく解説します。

フォーマット指定のやり方

SimpleDateFormatは様々な日時情報をフォーマットできます。

意味 パターン
G 紀元 G 西暦
y yyyy 2022
yy 22
M MM 01
d d 5
dd 05
H 時間(0~23) H 9(午前9時の場合)
HH 09(午前9時の場合)
00(午前0時の場合)
k 時間(1~24) k 1(午前1時の場合)
kk 01(午前1時の場合)
24(午前0時の場合)
K 時間(午前・午後0~11) K 0(午前0時または午後0時の場合)
KK 00(午前0時または午後0時の場合)
10(午前10時または午後10時の場合)
h 時間(午前・午後1~12) h 1(午前1時または午後1時の場合)
hh 01(午前1時または午後1時の場合)
12(午前0時または午後0時の場合)
m m 5(5分の場合)
05(5分の場合)
s s 5(5秒の場合)
ss 05(5秒の場合)
S ミリ秒 S 5(5ミリ秒の場合)
SSS 005(5ミリ秒の場合)
z タイムゾーン z JST

いくつかサンプルを用意します。

No 区分
1 書式 yyyy/MM/dd HH:mm:ss
出力 2022/01/30 23:54:50
2 書式 G:yyyy/MM/dd,kk:mm:ss:SSS タイムゾーンは:zです。
出力 西暦:2022/01/31,24:00:50:835 タイムゾーンは:JSTです。
3 書式 今は20yy年のMM月です。時間は午前K時です。
出力 今は2022年の01月です。時間は午前0時です。

このように、YやDなど決まった日時情報以外は、好きな記号・文字を組み合わせてフォーマットを作成することができます。

この記事のシェアはこちらから

カテゴリー

カテゴリーの一覧です。

Contact

当サイトへのご連絡は以下よりお願いします。

© Copyright 2022 ココでわかるAndroidアプリ開発