形式の日付を変換すると、日付/時刻の形式定義済みの日付/時刻の形式を示します。例えば、「2016年5月18日午後03時46分24秒金曜日」形式に、日付「金5月18日午後03時46分24秒CST2016」形式。
では Javaの クラスは、日付をフォーマットするために使用して以下に詳細にこれらのクラスを記述フォーマットの日付にはDateFormatとSimpleDateFormatのクラスを使用することができます。
DateFormatクラス
言語に依存しない方法で抽象クラスのサブクラス、フォーマットやパースの日付や時間のフォーマットにDateFormat日付/時刻。日付/時間(→日付テキスト)と正規化された日付を解析する許可フォーマット(すなわち、日付→テキスト)(SimpleDateFormatなど)のサブクラスを、フォーマット。
新しいオブジェクトのDateFormatのキーワードを作成するときに使用することはできませんが、静的メソッドgetDateInstance、DateFormatクラス()、次のサンプルコードを使用する必要があります。
DateFormatのDF = DateFormat.getDatelnstance()。
DateFormatオブジェクトを作成したら、日付/時間をフォーマットするために、オブジェクトのメソッドを呼び出すことができます。表1に示したDateFormatクラスの従来の方法。
方法 | 説明 |
---|---|
文字列の形式(日付) | 日付形式日付/時刻文字列 |
カレンダーgetCalendar() | 関連したこの日付/時刻の形式でカレンダーを取得します。 |
静的にDateFormat getDateInstance() | デフォルトのフォーマットスタイルを取得し、デフォルトロケールの日付形式を持っています |
静的にDateFormat getDateInstance(int型のスタイル) | 指定した形式およびデフォルトロケールで日付スタイル形式を取得します。 |
静的にDateFormat getDateInstance(int型のスタイル、 ロケールロケール) |
指定した形式とスタイル指定されたロケールでの日付形式を取得します。 |
静的にDateFormatに、getDateTimeInstance() | 日付とデフォルトのロケール/時間で、デフォルトのフォーマットスタイルを取得します フォーマット |
静的にDateFormatに、getDateTimeInstance(int型 いるdateStyle、int型timeStyle) |
指定された日付/時刻がデフォルトのロケールとのスタイルの書式で取得し た日付/時刻の形式 |
静的にDateFormatに、getDateTimeInstance(int型 いるdateStyle、int型timeStyle、ロケールロケール) |
指定された日付/時刻の書式スタイルを取得し、ロケールの指定 、日付/時刻の形式を |
静的にDateFormat getTimeInstance() | デフォルトのフォーマットスタイルを取得し、デフォルトロケールの時刻形式を持っています |
静的にDateFormat getTimeInstance(int型のスタイル) | デフォルトロケールの指定されたフォーマットとスタイルとフォーマットを取得します。 |
静的にDateFormat getTimeInstance(int型のスタイル、 ロケールロケール) |
指定した形式とスタイル指定されたロケールと書式を取得します。 |
空setCalendar(カレンダーnewCalendar) | この形式のカレンダーを設定します |
日付の解析(文字列のソース) | 指定された日付/時刻に文字列を解析 |
DateFormatの定数で設定されたメインのスタイル形式。異なる定数は、結果の長さを制御するために、表1に示したメソッドに渡されます。次のようにDateFormatクラスの定数です。
- SHORT:完全にデジタル化、など12.5.10または午後5時30分。
- MEDIUM:長い、など月10,2016など。
- LONG:長い、または月12,2016 11時15分32秒午前として。
- FULL:L5::42am CST完全な火曜日、月10,2012 ADまたは11として、指定されています。
次のように述べた形式/時間を使用して、実施例DateFormatクラスです。
// 別の書式設定スタイルを取得し、中国の環境が日付 にDateFormat DF1 = DateFormat.getDateInstance(DateFormat.SHORT、Locale.CHINA); DateFormatのDF2 = DateFormat.getDateInstance(DateFormat.FULL、Locale.CHINA); DateFormatのDF3 = DateFormat.getDateInstance (DateFormat.MEDIUM、Locale.CHINA); DateFormatのDF4 = DateFormat.getDateInstance(DateFormat.LONG、Locale.CHINA); // 時間が異なる環境のスタイルをフォーマットし、中国行き方 はDateFormat DF5 = DateFormat.getTimeInstance(DateFormat.SHORT、ロケール.china); たDateFormat DF6 = DateFormat.getTimeInstance(DateFormat.FULL、Locale.CHINA); たDateFormat DF7 =DateFormat.getTimeInstance(DateFormat.MEDIUM、Locale.CHINA); にDateFormat DF8 = DateFormat.getTimeInstance(DateFormat.LONG、Locale.CHINA); // 日付の異なるフォーマットスタイルは、フォーマットされた日付文字列である 文字列日付1 = df1.format (新しい新しいA日付()); 文字列DATE2 = df2.format(新新A日付()); 文字列date3 = df3.format(新新A日付()); 文字列date4 = df4.format(新新A日付()); // 異なります時間のフォーマットスタイルフォーマットされた時刻文字列の 文字列TIME1 = df5.format(新新A日付()); 文字列TIME2 = df6.format(新新A日付()); 文字列TIME3= df7.format(新しい日付()); 文字列TIME4 = df8.format(新しい日付()); // 输出日期 するSystem.out.println( "SHORT:" +日付1 + "" + 時間1)。 System.out.println( "FULL:" +日付2 + "" + TIME2)。 System.out.println( "MEDIUM:" + date3 + "" + TIME3)。 System.out.println( "LONG:" + date4 + "" + TIME4)。
コードの動作は、次の出力結果:
SHORT:18-10-15午前9時30 FULL:09午前30分43秒CSTで2018インディアン10 10月15日(月曜日) MEDIUM ,: 2018年10月15日午前9時30分43秒 LONG:2018インディアン10 15朝09時間30分43秒
この例では、クラスDateFomat日の異なるスタイルを用いて行うことができる方法と併せて使用されるフォーマットDateFormatクラス定数を記載しています。
SimpleDateFormat类
DateFormatクラスは、日付/時間をフォーマットして、要件を満たすことができない場合は、DateFormatクラス--SimpleDateFormatサブクラスを使用する必要があります。
SimpleDateFormatは、日付のフォーマットと解析具象クラスのロケールに関連する方法で、(テキスト→日付)、および正規化を解析し、(日付→テキスト)フォーマットを可能にします。SimpleDateFormatのモードは、そのユーザー定義の日付/時刻形式ように選択することができます。
SimpleDateFormatのクラスには、次の3つの主なコンストラクタがあります。
- SimpleDateFormat():デフォルトの形式およびデフォルトロケール構造のSimpleDateFormatを使用。
- SimpleDateFormat(文字列パターン):指定されたフォーマットとデフォルトロケール構造SimpleDateF書式(O)を有します。
- SimpleDateFormat(文字列パターン、ロケールロケール):ロケール構成のSimpleDateFの書式(O)の形式を指定し、指定します。
SimpleDateFormatカスタムフォーマット一般的に使用される文字と以下の表2に与えられます。
手紙 | 意味 | 例 |
---|---|---|
と | 年。YYは、一般的に2年で、yyyyは4年を表し | 使用yyは、このような11として、劇中であり、 使用yyyyは年を表す、など2011 |
M | 月間。MMは、あなたがMMMを使用している場合、それはなり、一般的な使用のための月である ロケールに応じて異なる言語での月を表示します |
使用MMは、05のように、月であり、 Locale.CHINAで、月のMMMを使用して 、このような「10月」と、ロケールの下で、Locale.USに ロケールの下では、そのような10月のように |
D | 月の日数。DDとの日の通常数 | DDは、10のように、日数で表現しました |
D | 年の日数。彼は今年の最初の数日ですが、Dで表され、その日にしました | Dは、295として、使用の年の日数を表し |
E | 週の日。別のロケールに基づいてEで表される、表示がない 、いくつかの言語での週 |
使用EはLocale.CHINA言語で、曜日を表し 、このような「木曜日」として、ロケールの下で、Locale.US言語で ロケールの下では、そのような木として |
H | 一日の時間数(0〜23)。通常、HHは時間を表し、 | HHは、18のように、使用時間数であります |
時間 | 一日の時間数(1〜12)。HHが一般的な使用の時間数を表し | HHは、(そこ注10このような10のように、使用時間数である 10点であってもよく、それは22:00であってもよいです) |
メートル | 分の数。通常分の数はミリメートルを使用しました | 分の数は、29のように、mmで表さ、使用しました |
S | 秒。一般的に用いられ、SSの秒数 | 使用ssは、のような38秒数です |
S | ミリ秒数。これは、ミリ秒単位の数は、一般的にSSSを使用表し | SSSは、156のように、ミリ秒単位の数を用いて表現しました |
例 1
フォーマットへのSimpleDateFormatクラスを使用して書き込みJavaプログラム、および現在の日付を印刷し、日付形式は「XXXX XX XX XXX日の週のXX分XX秒ポイント」で、特定のコードとして次のとおりです。
import java.text.SimpleDateFormat; import java.util.Date; public class Test13 { public static void main(String[] args) { Date now = new Date(); // 创建一个Date对象,获取当前时间 // 指定格式化格式 SimpleDateFormat f = new SimpleDateFormat("今天是 " + "yyyy 年 MM 月 dd 日 E HH 点 mm 分 ss 秒"); System.out.println(f.format(now)); // 将当前时间袼式化为指定的格式 } }
该程序的运行结果如下:
今天是 2018 年 10 月 15 日 星期一 09 点 26 分 23 秒