Java で日付をフォーマットするには、DateFormat と SimpleDateFormat という 2 つのクラスがあります。
java.text.DateFormat クラスは、言語に依存しない方法で Java で日付と時刻をフォーマットおよび解析するためのさまざまなメソッドを提供します。 DateFormat クラスは抽象クラスです。 java.text. Format は親クラスであり、java.text.SimpleDateFormat は java.text.DateFormat クラスのサブクラスです。
Java では、日付を文字列に変換することをフォーマットと呼び、その逆のことを解析と呼びます。言い換えると、 書式設定とは、日付を文字列に変換することを意味します。 そして 解析とは日付までの文字列を意味します 。
java.text.DateFormatフィールド
protected Calendar calendar protected NumberFormat numberFormat public static final int ERA_FIELD public static final int YEAR_FIELD public static final int MONTH_FIELD public static final int DATE_FIELD public static final int HOUR_OF_DAY1_FIELD public static final int HOUR_OF_DAY0_FIELD public static final int MINUTE_FIELD public static final int SECOND_FIELD public static final int MILLISECOND_FIELD public static final int DAY_OF_WEEK_FIELD public static final int DAY_OF_YEAR_FIELD public static final int DAY_OF_WEEK_IN_MONTH_FIELD public static final int WEEK_OF_YEAR_FIELD public static final int WEEK_OF_MONTH_FIELD public static final int AM_PM_FIELD public static final int HOUR1_FIELD public static final int HOUR0_FIELD public static final int TIMEZONE_FIELD public static final int FULL public static final int LONG public static final int MEDIUM public static final int SHORT public static final int DEFAULT
java.text.DateFormat メソッド
いいえ。 | パブリックメソッド | 説明 |
---|---|---|
1) | 最終文字列形式(日付日付) | 指定された Date オブジェクトを文字列に変換します。 |
2) | 日付解析 (文字列ソース) が ParseException をスローする | 文字列を Date オブジェクトに変換します。 |
3) | 静的最終 DateFormat getTimeInstance() | デフォルトのロケールのデフォルトの書式設定スタイルを持つ時刻フォーマッタを返します。 |
4) | 静的最終DateFormat getTimeInstance(int style) | デフォルトのロケールに指定された書式設定スタイルを持つ時刻フォーマッタを返します。 |
5) | static Final DateFormat getTimeInstance(int スタイル, Locale ロケール) | 指定されたロケールの指定された書式設定スタイルを持つ時刻フォーマッタを返します。 |
6) | 静的最終 DateFormat getDateInstance() | デフォルトのロケールのデフォルトの書式スタイルを使用して日付フォーマッタを返します。 |
7) | 静的最終DateFormat getDateInstance(int style) | デフォルトのロケールに対して指定された書式スタイルを持つ日付フォーマッタを返します。 |
8) | static Final DateFormat getDateInstance(int スタイル, Locale ロケール) | 指定されたロケールの指定された書式設定スタイルを持つ日付フォーマッタを返します。 |
9) | 静的最終 DateFormat getDateTimeInstance() | デフォルトのロケールのデフォルトの書式設定スタイルを使用して日付/時刻フォーマッタを返します。 |
10) | 静的final DateFormat getDateTimeInstance(int dateStyle,int timeStyle) | デフォルトのロケールの指定された日付書式スタイルと時刻書式スタイルを使用して日付/時刻フォーマッタを返します。 |
十一) | static Final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale locale) | 指定されたロケールの指定された日付書式スタイルと時刻書式スタイルを使用して日付/時刻フォーマッタを返します。 |
12) | 静的最終 DateFormat getInstance() | 日付と時刻の短い書式設定スタイルを使用して日付/時刻フォーマッタを返します。 |
13) | 静的 Locale[] getAvailableLocales() | 利用可能なロケールの配列を返します。 |
14) | カレンダー getCalendar() | この DateFormat インスタンスの Calendar のインスタンスを返します。 |
15) | NumberFormat getNumberFormat() | この DateFormat インスタンスの NumberFormat のインスタンスを返します。 |
16) | タイムゾーン getTimeZone() | この DateFormat インスタンスの TimeZone のインスタンスを返します。 |
Java DateFormat の例: 日付から文字列への変換
簡単な例を見てみましょう Java で日付と時刻をフォーマットする java.text.DateFormatクラスを使用します。
ファイル名: DateFormatExample.java
import java.text.DateFormat; import java.util.Date; public class DateFormatExample { public static void main(String[] args) { Date currentDate = new Date(); System.out.println('Current Date: '+currentDate); String dateToStr = DateFormat.getInstance().format(currentDate); System.out.println('Date Format using getInstance(): '+dateToStr); } }
出力:
Current Date: Tue Mar 31 14:37:23 IST 2015 Date Format using getInstance(): 31/3/15 2:37 PM
完全な例を見てみましょう Java で日付と時刻をフォーマットする java.text.DateFormatクラスを使用します。
ファイル名: DateFormatExample2.java
import java.text.DateFormat; import java.util.Date; public class DateFormatExample2 { public static void main(String[] args) { Date currentDate = new Date(); System.out.println('Current Date: '+currentDate); String dateToStr = DateFormat.getInstance().format(currentDate); System.out.println('Date Format using getInstance(): '+dateToStr); dateToStr = DateFormat.getDateInstance().format(currentDate); System.out.println('Date Format using getDateInstance(): '+dateToStr); dateToStr = DateFormat.getTimeInstance().format(currentDate); System.out.println('Date Format using getTimeInstance(): '+dateToStr); dateToStr = DateFormat.getDateTimeInstance().format(currentDate); System.out.println('Date Format using getDateTimeInstance(): '+dateToStr); dateToStr = DateFormat.getTimeInstance(DateFormat.SHORT).format(currentDate); System.out.println('Date Format using getTimeInstance(DateFormat.SHORT): '+dateToStr); dateToStr = DateFormat.getTimeInstance(DateFormat.MEDIUM).format(currentDate); System.out.println('Date Format using getTimeInstance(DateFormat.MEDIUM): '+dateToStr); dateToStr = DateFormat.getTimeInstance(DateFormat.LONG).format(currentDate); System.out.println('Date Format using getTimeInstance(DateFormat.LONG): '+dateToStr); dateToStr = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT).format(currentDate); System.out.println('Date Format using getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT): '+dateToStr); } }
出力:
Current Date: Tue Mar 31 14:37:23 IST 2015 Date Format using getInstance(): 31/3/15 2:37 PM Date Format using getDateInstance(): 31 Mar, 2015 Date Format using getTimeInstance(): 2:37:23 PM Date Format using getDateTimeInstance(): 31 Mar, 2015 2:37:23 PM Date Format using getTimeInstance(DateFormat.SHORT): 2:37 PM Date Format using getTimeInstance(DateFormat.MEDIUM): 2:37:23 PM Date Format using getTimeInstance(DateFormat.LONG): 2:37:23 PM IST Date Format using getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT): 31 March, 2015 2:37 PM
Java DateFormat の例: 日付までの文字列
簡単な例を見てみましょう 文字列を日付に変換する java.text.DateFormatクラスを使用します。
ファイル名: DateFormatExample3.java
import java.text.DateFormat; import java.util.Date; public class DateFormatExample3 { public static void main(String[] args)throws Exception { Date d = DateFormat.getDateInstance().parse('31 Mar, 2015'); System.out.println('Date is: '+d); } }
出力:
Date is: Tue Mar 31 00:00:00 IST 2015
Java DateFormat の例: getTimeInstance(int style, Locale locale)
getTimeInstance(int style, Locale locale) メソッドの動作を見てみましょう。
ファイル名: GetTimeInstanceExample.java
// important important statements import java.util.Date; import java.util.Locale; import java.text.DateFormat; public class GetTimeInstanceExample { // main method public static void main(String argvs[]) throws Exception { // locale is French here. Locale lcl = Locale.FRENCH; // creating an object of the class Date Date d = new Date(); // getting the instance by invoking the getTimeInstance(int, Locale) method DateFormat dFormat = DateFormat.getTimeInstance(DateFormat.SHORT, lcl); String str = dFormat.format(d); System.out.println(str); } }
出力:
13:12
Java DateFormat の例: getDateInstance(int style)
getDateInstance(int style) メソッドの仕組みを見てみましょう。
ファイル名: GetDateInstanceExample.java
// important important statements import java.util.Date; import java.util.Locale; import java.text.DateFormat; public class GetDateInstanceExample { // main method public static void main(String argvs[]) throws Exception { // creating an object of the class Date Date d = new Date(); // getting the instance by invoking the getDateInstance(int) method // here default locale is used DateFormat dFormat = DateFormat.getDateInstance(DateFormat.SHORT); String str = dFormat.format(d); System.out.println(str); } }
出力:
12/2/21
Java DateFormat の例: getDateInstance(int style, Locale locale)
getDateInstance(int style, Locale locale) メソッドの動作を見てみましょう。
ファイル名: GetDateInstanceExample1.java
// important important statements import java.util.Date; import java.util.Locale; import java.text.DateFormat; public class GetDateInstanceExample1 { // main method public static void main(String argvs[]) throws Exception { // locale is French here. Locale lcl = Locale.FRENCH; // creating an object of the class Date Date d = new Date(); // getting the instance by invoking the getDateInstance(int, Locale) method DateFormat dFormat = DateFormat.getDateInstance(DateFormat.SHORT, lcl); String str = dFormat.format(d); System.out.println(str); } }
出力:
ピーナッツ vs 落花生
02/12/2021
Java DateFormat の例: getDateTimeInstance(int dateStyle, int timeStyle, Locale locale)
getDateTimeInstance(int dateStyle, int timeStyle, Locale locale) メソッドの動作を見てみましょう。
ファイル名: GetDateTimeInstanceExample.java
// important important statements import java.util.Date; import java.util.Locale; import java.text.DateFormat; public class GetDateTimeInstanceExample { // main method public static void main(String argvs[]) throws Exception { // locale is French here. Locale lcl = Locale.FRENCH; // creating an object of the class Date Date d = new Date(); // getting the instance by invoking the getDateTimeInstance(int, int, Locale) method DateFormat dFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG, lcl); String str = dFormat.format(d); System.out.println(str); } }
出力:
02/12/2021 14:16:34 GMT
Java DateFormat の例: getCalender()
getCalender() メソッドの仕組みを見てみましょう。
ファイル名: GetCalenderExample.java
// important import statements import java.util.Date; import java.text.DateFormat; import java.text.*; public class GetCalenderExample { // main method public static void main(String argvs[]) throws Exception { // getting the instance DateFormat dFormat = DateFormat.getDateTimeInstance(); // invoking the method getCalender(); System.out.println(dFormat.getCalendar()); } }
出力:
java.util.GregorianCalendar[time = -886152493222, areFieldsSet = true, areAllFieldsSet = true, lenient = true, zone = sun.util.calendar.ZoneInfo[id = 'GMT', offset=0, dstSavings = 0, useDaylight = false, transitions = 0, lastRule = null], firstDayOfWeek = 1, minimalDaysInFirstWeek = 1,ERA = 1, YEAR = 1941, MONTH = 11, WEEK_OF_YEAR = 49, WEEK_OF_MONTH = 1, DAY_OF_MONTH = 2, DAY_OF_YEAR = 336, DAY_OF_WEEK = 3, DAY_OF_WEEK_IN_MONTH = 1, AM_PM = 1, HOUR = 2, HOUR_OF_DAY = 14, MINUTE = 31, SECOND = 46, MILLISECOND = 778, ZONE_OFFSET = 0, DST_OFFSET = 0]
Java DateFormat の例: getNumberFormat()
getNumberFormat() メソッドの仕組みを見てみましょう。
ファイル名: GetNumberFormatExample.java
// important import statements import java.text.NumberFormat; import java.text.DateFormat; public class DateFormatDemo { // main method public static void main(String[] argvs) { // getting the instance by invoking the getTimeInstance() method DateFormat dFormat = DateFormat.getTimeInstance(DateFormat.SHORT); // invoking the method getNumberFormat() NumberFormat numFormat = dFormat.getNumberFormat(); System.out.println('The format is: ' + numFormat); } }
出力:
The format is: java.text.DecimalFormat@674dc