DateTime (クラス)
public final serializable DateTime
パッケージ: CURL.LANGUAGE.DATE-TIME

多様な地域での時間帯での時刻およびカレンダー表現に関する高レベルのインターフェイスを提供します。また、さまざまな四則演算および変換操作が可能です。このクラスは可変です。

説明

DateTimeの実装は、DateTimeDataDateTimeZone 、および DateTimeInfo の機能を組み合わせています。DateTime は、常に DateTimeZone を保持しているので、DateTimeDataDateTimeInfo 間で自由に変換を実行できます。どちらか一方が変更されると、もう一方は、次に必要になったときに再計算されます。 DateTime によって提供されるDateTimeInfo は、常に標準的です。 Windowsでは、ユーザーがシステム日付や時間を変更した場合に、その変更を反映させるインタフェースで最大 1 分かかる可能性があります。

コンストラクタ
date:カレンダーの日付を表す DateTime を作成します。
ファクトリ public {DateTime.date
year:int64 = 0,
month:int = 0,
day:int = 0,
...:#Object
}:DateTime
default:新しい DateTime インスタンスを作成します。
コンストラクタ public {DateTime.default
zone:#DateTimeZone = null,
year:int64 = 0,
month:int = 0,
day:int = 0,
hour:int = 0,
minute:int = 0,
second:int = 0,
partial-second:int64 = 0,
...:any
}
object-deserialize:
コンストラクタ public {DateTime.object-deserialize in:SerializeInputStream}

プロパティ
data:基礎となる DateTimeData にアクセスします。
アクセサ public DateTime.data:DateTimeData
セッター public DateTime.data:DateTimeData
info:基礎となる DateTimeInfo にアクセスします。
アクセサ public DateTime.info:DateTimeInfo
セッター public DateTime.info:DateTimeInfo
zone:基礎となる DateTimeZone にアクセスします。
アクセサ public DateTime.zone:DateTimeZone
セッター public DateTime.zone:DateTimeZone

メソッド
clone-with-time:self からの日付情報、time からのタイム ゾーン情報および時間と共に DateTime を作成します。
public {DateTime.clone-with-time time:DateTime}:DateTime
compare:DateTimeData.compare を使用して、基礎となる data フィールドと比較する方法で、別の DateTime と比較します。
public inline {DateTime.compare other:DateTime}:int
elapsed:2 つの DateTime オブジェクトのうち、基礎となる DateTimeData で、elapsed を呼び出すための略記法。
public {DateTime.elapsed ending:#DateTime = null}:Time
object-describe-for-debugging:オブジェクトについて細部を記述します。これは主にデバッグ目的での使用が想定されています。
public {DateTime.object-describe-for-debugging}:void
object-serialize:クラス インスタンスが書き込まれるときに、シリアル化コードで呼び出されます。
public {DateTime.object-serialize out:SerializeOutputStream}:void
メソッド 継承 Object: object-describe



コンストラクタ詳細
date (ファクトリ)
public {DateTime.date
year:int64 = 0,
month:int = 0,
day:int = 0,
...:#Object
}:DateTime

カレンダーの日付を表す DateTime を作成します。

説明

作成される DateTime は日付情報のみを含み、全ての時間情報は 0 に設定し、タイム ゾーンは DateTimeZone.utc に設定します。
year: 日付で使う年。 位置引数からの年をオーバーライドします。year が提供され month または day が提供されない場合、これらは 1 に設定されます。
month: 日付で使う月。位置引数からの月をオーバーライドします。 month が提供され day が提供されない場合、day1 に設定されます。
day: 日付で使う日。位置引数からの日をオーバーライドします。
...: これは DateTime.default のオプションの位置引数と同様の意味を持ちます。

位置引数がない場合、キーワード引数として提供されていない全ての日付情報に、ローカル タイム ゾーンの現在の日付が使用されます。

DateTime 位置引数を提供する場合、結果の DateTimeDateTimeZone.utc タイム ゾーンになるのにもかかわらず、日付情報は DateTime のタイム ゾーンで使用されます。


default (コンストラクタ)
public {DateTime.default
zone:#DateTimeZone = null,
year:int64 = 0,
month:int = 0,
day:int = 0,
hour:int = 0,
minute:int = 0,
second:int = 0,
partial-second:int64 = 0,
...:any
}

新しい DateTime インスタンスを作成します。

...: 位置引数の型によって初期化の動作が決まります。

位置引数がないか null である場合は、DateTime は現在の時刻を使用して初期化されます。作成された値は、キーワード引数によってさらに変更される可能性があります。

位置引数に String を指定できます。String を解析して DateTime オブジェクトを作成する方法の詳細については、「DateTime 文字列の解析」を参照してください。作成された値は、キーワード引数によってさらに変更される可能性があります。

位置引数が DateTimeData または DateTimeInfo である場合、zone の既定値はローカルの時間帯になります。作成された値は、残りのキーワード引数によってさらに変更る可能性があります。

位置引数が DateTime である場合、オリジナルのコピーが作成されます。コピーは、キーワード引数によってさらに変更される可能性があります。
zone:
結果の DateTime オブジェクトの時間帯を指定します。これは、位置引数があればこれを処理した後で、その他のすべてのキーワード引数を処理する前に適用されます。
また、String フォーマットの値を解析する場合の既定の時間帯もこれで指定します。
指定がなく、位置引数からも時間帯を決定できない場合、時間帯は既定値の DateTimeZone.local になります。
year: この値は正常範囲にある必要はありません。
month: この値は正常範囲にある必要はありません。
day: この値は正常範囲にある必要はありません。
hour: この値は正常範囲にある必要はありません。
minute: この値は正常範囲にある必要はありません。
second: この値は正常範囲にある必要はありません。
partial-second: 指定される場合、DateTimeData に定義されているように負でない int64 である必要があります。

説明

残りのキーワード引数を使い、カレンダーの制約に応じて時刻を調整することができます。これらの引数のいずれかを指定した場合、指定最小単位よりも小さい単位はすべてそれぞれの最小値に設定されます。
標準の数値範囲外にある値をキーワード引数に指定することも認められています。 詳細は、「DateTime の正規化」を参照してください。


object-deserialize (コンストラクタ)
public {DateTime.object-deserialize in:SerializeInputStream}
この項目はサポートされていません。内部使用限定となっています。



プロパティ詳細
data (アクセサ)
アクセサ public DateTime.data:DateTimeData
セッター public DateTime.data:DateTimeData

基礎となる DateTimeData にアクセスします。

説明

現在の時を表す DateTimeData への参照が返されます。

このアクセッサが設定されている場合、DateTimeInfo は、現在の DateTimeZone を使用して再計算されます。


info (アクセサ)
アクセサ public DateTime.info:DateTimeInfo
セッター public DateTime.info:DateTimeInfo

基礎となる DateTimeInfo にアクセスします。

説明

現在のカレンダーの日付と時刻を表す標準的な DateTimeInfo への参照が返されます。

このアクセッサが設定されている場合、DateTimeData は、現在の DateTimeZone を使用して再計算されます。

info を設定するときは、標準的な DateTimeInfo を提供する必要はありません。カレンダーの値は、その正常範囲外である可能性があります。詳細は「DateTime の正規化」を参照してください。


zone (アクセサ)
アクセサ public DateTime.zone:DateTimeZone
セッター public DateTime.zone:DateTimeZone

基礎となる DateTimeZone にアクセスします。

説明

現在の時間帯を表す DateTimeZone への参照が返されます。DateTimeZone は、DateTimeData から DateTimeInfo を、または DateTimeInfo から DateTimeData を作成するための情報を提供します。

このアクセッサが設定されている場合、現在の DateTimeData が保存され、新しい DateTimeZone から DateTimeInfo が再計算されます。





メソッド詳細
clone-with-time (メソッド)
public {DateTime.clone-with-time time:DateTime}:DateTime

self からの日付情報、time からのタイム ゾーン情報および時間と共に DateTime を作成します。

time: 時間情報を取得する DateTime

説明

これは、通常、 DateTime.date#factory と共に作成される DateTime で呼び出されます。


compare (メソッド)
public inline {DateTime.compare other:DateTime}:int

DateTimeData.compare を使用して、基礎となる data フィールドと比較する方法で、別の DateTime と比較します。



elapsed (メソッド)
public {DateTime.elapsed ending:#DateTime = null}:Time

2 つの DateTime オブジェクトのうち、基礎となる DateTimeData で、elapsed を呼び出すための略記法。



object-describe-for-debugging (メソッド)
public {DateTime.object-describe-for-debugging}:void

オブジェクトについて細部を記述します。これは主にデバッグ目的での使用が想定されています。

out: 文字が送られるストリーム。
locale: self の表示方法をコントロールする Locale

説明

このメソッドは、一般に、"%y" フォーマット キーを使用して間接的に起動されます。"%y" フォーマット キーは、このメソッドによって生成された結果を、次のような何らかの型またはアドレス情報でラップします。
{do
    let buf:StringBuf = {StringBuf}
    {self.object-describe-for-debugging buf, {get-syntax-locale}}
    {format out = out, "[<type> @<addr> %s]", buf}
}
このメソッドの既定の実装では
{format out = out, "%w", self} を呼び出します。
(「%w」フォーマット キーの詳細については、format を参照してください)。
これが FormatFailedException を取得する場合、通常ユーザー定義のクラスのように、このメソッドは object-describe メソッドの呼び出しに戻ります。


object-serialize (メソッド)
public {DateTime.object-serialize out:SerializeOutputStream}:void

クラス インスタンスが書き込まれるときに、シリアル化コードで呼び出されます。

out: このメソッドを呼び出した SerializeOutputStream

説明

このメソッドは、次のステップを順番に実行する必要があります。
  1. SerializeOutputStream.write-class-version を呼び出します。通常は引数にゼロ (0) を指定します。
  2. シリアル化可能なスーパークラスごとに super.object-serialize を呼び出します。
  3. シリアル化された状態を out に書き込みます。これは通常、フィールドごとに SerializeOutputStream.write-one を呼び出すことによって実行されます。

注意事項

このメソッドは、シリアル化可能なサブクラスでのみ定義する必要があります。