Java Format 書式を指定するサンプル

JavaのFormatメソッドで書式を指定するサンプルです。

目次

サンプル 書式を指定する(format)
  日時の書式設定(DateTimeFormatter)

書式を指定する(format)

public static String format(String format,Object... args)

formatメソッドで書式を指定するサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {

		// 頭ゼロつける
		System.out.println(String.format("%05d", 1000)); //01000
		System.out.println(String.format("%06d", 1000)); //001000
		
		// 3桁ごとにカンマ区切り
		System.out.println(
				String.format("%,d", 1000));       //1,000
		System.out.println(
				String.format("%,d", 10000));     //10,000
		System.out.println(
				String.format("%,d", 1000000)); //1,000,000
		
		// 符号を表示
		System.out.println(String.format("%+d", 1000)); //+1000
		System.out.println(String.format("%+d", -1000)); //-1000
		
		// 左寄せ
		System.out.println(String.format("%-4d", 1000)); //1000
		
		// 複数の項目
		System.out.println(String.format("%4d %4d", 1000,2000)); //1000 2000

		// 書式の中に文字
		System.out.println(String.format("%dと%d", 1000,2000)); //1000と2000
		
		// sは文字列
		System.out.println(String.format("%s/%s/%s", "2020","07","01")); //2020/07/01
 	}
}

書式は、最初に必ずパーセント(%)を指定します。
次にカンマまたは0またはマイナス(-)またはプラス(+)を指定します。これは省略可能です。
次に桁数を指定します。省略可能です。
次に型を指定します。dは整数でsは文字列です。

日時の書式設定(DateTimeFormatter)

public static DateTimeFormatter ofPattern(String pattern)

日時の書式設定のサンプルです。

package test1;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Test1 {
	public static void main(String[] args) {

		LocalDateTime date1 = LocalDateTime.now();
		System.out.println(date1); //2020-07-04T17:34:10.415
		
		DateTimeFormatter dtformat1 = 
				DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS E");
		String fdate1 = dtformat1.format(date1);
		System.out.println(fdate1); // 2020/07/04 17:34:10.415 土
		
		DateTimeFormatter dtformat2 = 
		  DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分ss秒SSSミリ秒 E曜日");
		String fdate2 = dtformat2.format(date1);
		System.out.println(fdate2); // 2020年07月04日 17時34分10秒415ミリ秒 土曜日
 	}
}

8行目は、LocalDateTimeクラスのnowメソッドで現在日時を取得しています。

11,12行目は、DateTimeFormatterクラスのofPatternメソッドで表示形式を指定しています。SSSはミリ秒です。
13行目は、DateTimeFormatterクラスのformatメソッドで設定しています。
表示形式の不要な項目は削除できます。Eは曜日ですが削除すると曜日なしで表示されます。

17行目は、年月日時分秒の表示形式を指定しています。

関連の記事

Java 文字列を結合する(StringBuilder/+/concat/join)

 

△上に戻る