数値 ⇒ 文字列の変換
数値から文字列への変換は、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 文で囲う、または再度スローし直す必要があります。
数値 ⇔ 日付の変換
数値から日付、または日付から数値への変換は、残念ながら、そのために作られたメソッドはありません。両方とも、一度文字列への変換を経由する必要があります。