DateIntervalFormat クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。
[Android.Runtime.Register("android/icu/text/DateIntervalFormat", ApiSince=24, DoNotGenerateAcw=true)]
public class DateIntervalFormat : Android.Icu.Text.UFormat
[<Android.Runtime.Register("android/icu/text/DateIntervalFormat", ApiSince=24, DoNotGenerateAcw=true)>]
type DateIntervalFormat = class
inherit UFormat
- 継承
- 属性
注釈
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 書式設定のみがサポートされています。 解析はサポートされていません。
日付間隔は、"Jan 11, 2008" から "Jan 18, 2008" など、ある日付から別の日付を意味します。 それを表す DateInterval クラスを導入しました。 DateInterval は UDate のペアです。これは、1970 年 1 月 1 日の 24:00 GMT 以降の標準ミリ秒です。
DateIntervalFormat は、DateInterval を可能な限りコンパクトにテキストに書式設定します。 たとえば、"Jan 11, 2008" から "Jan 18" までの日付間隔の形式です。 2008 年 1 月 11 日から 2008 年 1 月 18 日は英語です。 また、テキストを DateInterval に解析しますが、最初は解析はサポートされていません。
日付の時刻パターンに構造情報はありません。 日付時刻パターン内の句読点と文字列リテラルの場合、区切り記号かプレフィックスかサフィックスかわかりません。 このような情報がないと、アルゴリズムによってサブパターン(またはスーパーパターン)を生成することは困難である。 そのため、DateInterval の書式設定はパターンドリブンです。 SimpleDateFormat の書式設定とよく似ています。 SimpleDateFormat の日付時刻パターンと同様に、日付間隔パターンを保存するクラス DateIntervalInfo を導入します。
論理的には、間隔パターンは (スケルトン、the_largest_different_calendar_field) から (date_interval_pattern) へのマッピングです。
スケルトン <ol><li> はフィールド パターン文字のみを保持し、スペース、句読点、文字列リテラルなど、パターン内の他のすべての部分を無視します。 <li> フィールドの順序を非表示にします。 <li> はフィールドのパターン文字の長さを隠す可能性があります。
これらの数字以外のカレンダー フィールドでは、MMM、MMMM、MMMMM などのパターン文字の長さが重要です。EEE と EEEE、およびフィールドのパターン文字の長さが優先されます。
M、MM、d、dd、yy、yyyy などの数字カレンダー フィールドの場合、フィールド パターンの長さは無視され、日付時刻パターンで定義されている最適な一致は、スケルトンのフィールド パターン文字の長さを優先せずに返されます。 </ol>
間隔の書式設定でサポートされているカレンダー フィールドは、年、月、日付、曜日、am-pm、時間、時間、時刻、分、秒です (ただし、現在、秒を持つスケルトンの特定の intervalFormat データはありません)。 これらのカレンダー フィールドは、次の順序で定義できます。month >date >時間 (日) >minute >second
2 つの予定表間の最大の異なる予定表フィールドは、上記の順序で最初に異なる予定表フィールドです。
たとえば、"Jan 10, 2007" と "Feb 20, 2008" の間の最大の異なるカレンダー フィールドは年です。
その他のカレンダー フィールドでは、コンパクト間隔の書式設定はサポートされていません。 また、間隔形式はフォールバック パターンにフォールバックされます。これは主に "{date0} - {date1}" です。
DateFormat には定義済みの静的スケルトン文字列のセットがあります。ロケールのリソース ファイルには、事前に定義されたスケルトンの事前に定義された間隔パターンがあります。 たとえば、"yMMMd" であるスケルトン YEAR_ABBR_MONTH_DAYの場合、en_USでは、date1 と date2 の最大の異なるカレンダー フィールドが "year" の場合、日付間隔パターンは "MMM d, yyyy - MMM d, yyyy" になります (例: "Jan 10, 2007 - Jan 10, 2008")。 date1 と date2 の最大の異なるカレンダー フィールドが "month" の場合、日付間隔パターンは "MMM d - MMM d, yyyy" です (例: "Jan 10 - Feb 10, 2007" など)。 date1 と date2 の間の最大の異なるカレンダー フィールドが "day" の場合、日付間隔パターンは "MMM d-d, yyyy" です ("Jan 10-20, 2007" など)。
日付スケルトンの場合、年、月、または日付が異なる間隔パターンがリソース ファイルで定義されます。 時間スケルトンの場合、am/pm または hour または minute が異なる間隔パターンがリソース ファイルで定義されます。
スケルトンがロケールの DateIntervalInfo で見つからない場合、つまり、スケルトンの間隔パターンがリソース ファイルで定義されていない場合、間隔パターンはリソース ファイルで定義されている間隔 "フォールバック" パターンにフォールバックします。 間隔 "フォールバック" パターンが定義されていない場合、既定のフォールバックは "{date0} - {data1}" です。
日付と時刻の組み合わせの場合、間隔パターンを <するルールは次のとおりです><li> 年、 月または日が異なる場合は、フォールバック間隔パターンにフォールバックします。これは主に、"Jan 10, 2007 10:10 am" から "Jan 11, 10:10am" までの間隔パターンが "Jan 10, 2007 10:10 am - Jan 11, 2007 10:10am" <li> それ以外の場合は、日付の後に時刻の範囲式を表示します。 たとえば、"Jan 10, 2007 10:10 am" から "Jan 10, 2007 11:10am" までの間隔パターンは、"Jan 10, 2007 10:10 am - 11:10am" </ol です。>
2 つの日付が同じ場合、間隔パターンは単一の日付パターンです。 たとえば、"Jan 10, 2007" から "Jan 10, 2007" までの間隔パターンは、"Jan 10, 2007" です。
または、2 つの日付の間の提示フィールドの値がまったく同じである場合、間隔パターンは単一の日付パターンです。 たとえば、ユーザーが年と月のみを要求する場合、"Jan 10, 2007" から "Jan 20, 2007" までの間隔パターンは "Jan 2007" になります。
DateIntervalFormat には、正しい書式を設定するために、タイム ゾーン、カレンダーの種類、パターン、日付書式記号、日付間隔パターンの情報が必要です。 <ol><li>既定または特定のロケールと特定のスケルトンを使用してインスタンスを作成する方法でインスタンスをインスタンス化できます。 ユーザーは、このように日付間隔フォーマッタを作成し、カレンダー フィールドと書式スタイルで構成される YEAR_NUM_MONTH などの定義済みのスケルトン マクロを使用することをお勧めします。 </li><li> 既定または特定のロケールに加えて、指定されたスケルトンと特定の DateIntervalInfo を使用してインスタンスを作成します。 このファクトリ メソッドは、独自の間隔パターンを提供する強力なユーザー向けです。 ロケールは、タイムゾーン、カレンダー、および書式記号の情報を提供します。 ローカルプラススケルトンは、完全なパターン情報を提供します。 DateIntervalInfo は、日付間隔パターンを提供します。 </li></ol>
G、y、M、d、a、h、H、m、s などのカレンダー フィールド パターン文字の場合。DateIntervalFormat は、DateTime 形式と同じ構文を使用します。
コード サンプル: 一般的な使用方法
// the date interval object which the DateIntervalFormat formats on
// and parses into
DateInterval dtInterval = new DateInterval(1000*3600*24L, 1000*3600*24*2L);
DateIntervalFormat dtIntervalFmt = DateIntervalFormat.getInstance(
DateFormat.YEAR_MONTH_DAY, new Locale("en", "GB", ""));
StringBuffer result = new StringBuffer("");
FieldPosition pos = new FieldPosition(-1);
// formatting
dtIntervalFmt.format(dtInterval, result, pos);
assertEquals("interval", "1–2 January 1970", result.toString());
コード サンプル: 独自の間隔パターンを使用する強力なユーザー向け
import android.icu.text.DateIntervalInfo;
import android.icu.text.DateIntervalFormat;
....................
// Get DateIntervalFormat instance using default locale
DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(YEAR_MONTH_DAY);
// Create an empty DateIntervalInfo object, which does not have any interval patterns inside.
dtitvinf = new DateIntervalInfo();
// a series of set interval patterns.
// Only ERA, YEAR, MONTH, DATE, DAY_OF_MONTH, DAY_OF_WEEK, AM_PM, HOUR, HOUR_OF_DAY,
MINUTE, SECOND and MILLISECOND are supported.
dtitvinf.setIntervalPattern("yMMMd", Calendar.YEAR, "'y ~ y'");
dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy 'diff' MMM d - MMM d");
dtitvinf.setIntervalPattern("yMMMd", Calendar.DATE, "yyyy MMM d ~ d");
dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMM d HH:mm ~ HH:mm");
// Set fallback interval pattern. Fallback pattern is used when interval pattern is not found.
// If the fall-back pattern is not set, falls back to {date0} - {date1} if interval pattern is not found.
dtitvinf.setFallbackIntervalPattern("{0} - {1}");
// Set above DateIntervalInfo object as the interval patterns of date interval formatter
dtitvfmt.setDateIntervalInfo(dtitvinf);
// Prepare to format
pos = new FieldPosition(0);
str = new StringBuffer("");
// The 2 calendars should be equivalent, otherwise, IllegalArgumentException will be thrown by format()
Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();
Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();
fromCalendar.setTimeInMillis(....);
toCalendar.setTimeInMillis(...);
//Formatting given 2 calendars
dtitvfmt.format(fromCalendar, toCalendar, str, pos);
<h3>Synchronization</h3>
DateIntervalFormat の書式メソッドは、複数のスレッドから同時に使用できます。 DateIntervalFormat オブジェクト (セッター) の状態を変更する関数は、他の関数と同時に使用することはできません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| DateIntervalFormat(IntPtr, JniHandleOwnership) |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| DateFormat |
日付フォーマッタを取得します。 |
| DateIntervalInfo |
日付の時間間隔パターンを取得します。 または、日付の時間間隔パターンを設定します。 |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| JniPeerMembers |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 |
| ThresholdType |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 |
| TimeZone |
TimeZone を取得します。または、この DateIntervalFormat オブジェクトで使用されるカレンダーの TimeZone を設定します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| Equals(Object) |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| Format(Calendar, Calendar, StringBuffer, FieldPosition) |
文字列を生成する 2 つのカレンダーの書式を設定します。 |
| Format(DateInterval, StringBuffer, FieldPosition) |
DateInterval を書式設定して文字列を生成します。 |
| Format(ITemporal, ITemporal, StringBuffer, FieldPosition) |
2 つの |
| Format(Object, StringBuffer, FieldPosition) |
文字列を生成するオブジェクトの書式を設定します。 |
| Format(Object) |
文字列を生成するオブジェクトを書式設定します。 (継承元 _Format) |
| FormatToCharacterIterator(Object) |
|
| FormatToValue(Calendar, Calendar) |
FormatedDateInterval を生成する 2 つのカレンダーを書式設定します。 |
| FormatToValue(DateInterval) |
DateInterval を書式設定して FormattedDateInterval を生成します。 |
| FormatToValue(ITemporal, ITemporal) |
2 つのテンポラルを書式設定して FormattedDateInterval を生成します。 |
| GetContext(DisplayContext+Type) |
[icu]指定した DisplayContext.Type のフォーマッタの DisplayContext 値 (大文字化など) を取得します。 |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| GetInstance(String, DateIntervalInfo) |
スケルトン DateIntervalInfo から DateIntervalFormat を構築し、既定の |
| GetInstance(String, Locale, DateIntervalInfo) |
スケルトンの DateIntervalInfo と指定されたロケールから DateIntervalFormat を構築します。 |
| GetInstance(String, Locale) |
スケルトンと特定のロケールから DateIntervalFormat を構築します。 |
| GetInstance(String, ULocale, DateIntervalInfo) |
スケルトンの DateIntervalInfo と指定されたロケールから DateIntervalFormat を構築します。 |
| GetInstance(String, ULocale) |
スケルトンと特定のロケールから DateIntervalFormat を構築します。 |
| GetInstance(String) |
スケルトンと既定の |
| JavaFinalize() |
古い.
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| ParseObject(String, ParsePosition) |
古い.
日付間隔の解析はサポートされていません。 |
| ParseObject(String) |
指定された文字列の先頭からテキストを解析して、オブジェクトを生成します。 (継承元 _Format) |
| SetContext(DisplayContext) |
<strong>[icu]</strong> フォーマッタで特定の DisplayContext 値 (CAPITALIZATION_FOR_STANDALONEなど) を設定します。 |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| IJavaPeerable.Finalized() |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 (継承元 _Format) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
DateIntervalFormat は、言語に依存しない方法で日付の間隔を書式設定および解析するためのクラスです。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|