MENU

Java 数値⇔文字列⇔日付の変換

目次

数値 ⇒ 文字列の変換

数値から文字列への変換は、String.valueof() を使います。

String str = String.valueOf(num);

また、他にもこのような書き方があります。

String str = Integer.toString(num);
String str = "" + num;

最後の “” + num は、文字列と連結させると数値を文字列として扱うという Java の特徴を活用しています。

最後のやり方が最もシンプルに記述できますが、Java の特性をしっかり理解していない方がみたら、意図を読み解くのに時間がかかります。

文字列 ⇒ 数値の変換

文字列から数値への変換は、Integer.parseInt() を使います。

int num = Integer.parseInt(str);

文字が入っていたり、型に入らない数値であったりと、何らかの理由で変換できなかった場合は NumberFormatException になるので注意が必要です。

日付 ⇒ 文字列の変換

日付から文字列への変換は、数値⇒文字列より少し複雑です。

まず SimpleDateFormat のインスタンスを作成します。作成する際に日付書式を指定します。これが文字列にしたときのフォーマットになります。

最後に SimpleDateFormat.format() で文字列に変換しています。

サンプルコード

public static void main(String[] args) {
    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
    String str = sdf.format(date);
    
    System.out.println("日付型 = " + date);
    System.out.println("文字列 = " + str);
}

出力結果:

日付型 = Sat Nov 02 12:11:55 UTC 2019
文字列 = 2019/11/02 12:11:55

文字列 ⇒ 日付の変換

文字列から日付への変換には、SimpleDateFormat.parse メソッドを使います。

日付 ⇒ 文字列の場合と同じく、SimpleDateFormat を作成します。作成時に日付書式を指定しますが、これは変換対象の文字列の日付フォーマットに合わせます。

最後に SimpleDateFormat.parse() で日付(Date)に変換します。

サンプルコード

public static void main(String[] args) {
    try {
        String strDate = "2019/11/01 12:34:56";
     
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
        Date date = sdf.parse(strDate);
        
        System.out.println("文字列 = " + strDate);
        System.out.println("日付型 = " + date);
        
    } catch (ParseException e) {
        //例外処理
    }
}

出力結果:

文字列 = 2019/11/01 12:34:56
日付型 = Fri Nov 01 00:34:56 UTC 2019

なお、parseメソッドは ParseException をスローしているので、try-catch 文で囲う、または再度スローし直す必要があります。

数値 ⇔ 日付の変換

数値から日付、または日付から数値への変換は、残念ながら、そのために作られたメソッドはありません。両方とも、一度文字列への変換を経由する必要があります。

  • URLをコピーしました!
目次