Temporal.PlainDateTime
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Temporal.PlainDateTime オブジェクトは、タイムゾーンを含まない日付(暦日)と時刻(壁時計時刻)を表します。基本的には、日付(関連付けられた暦体系を伴う)と時刻の組み合わせとして表現されます。
解説
PlainDateTime は、本質的に Temporal.PlainDate と Temporal.PlainTime を組み合わせたものです。日付と時刻の情報にはあまり相互作用がないため、日付プロパティに関する一般的な情報はすべて PlainDate オブジェクトに、時刻プロパティに関する一般的な情報はすべて PlainTime オブジェクトに記載されています。
日時が、タイムゾーンを超えて不変であるべき特定の瞬間を表す場合は、代わりに Temporal.ZonedDateTime オブジェクトを使用してください。特定の壁時計時刻に現れるイベントを表す必要がある場合、その時刻はタイムゾーンによって異なる瞬間となる可能性があるため、PlainDateTime を使用してください。
RFC 9557 形式
PlainDateTime オブジェクトは、RFC 9557 形式(ISO 8601 / RFC 3339 形式を拡張したもの)を使用してシリアライズおよび構文解析することができます。文字列は次の形式をとります(空白は可読性のためのものであり、実際の文字列には含めないでください)。
YYYY-MM-DD T HH:mm:ss.sssssssss [u-ca=calendar_id]
YYYY-
4 桁の数値、または
+または-の符号をつけた 6 桁の数値です。 MM-
01~12の 2 桁の数値です。 DD-
01~31の 2 桁の数値で、YYYY、MM、DDの各成分は-で区切ることも、区切らないこともできます。 T省略可-
日付と時刻を区切るもので、
T、t、空白のいずれかにすることができます。HHが存在するときのみ存在します。 HH省略可-
00~23の 2 桁の数値です。デフォルト値は00です。 mm省略可-
00~59の 2 桁の数値です。デフォルト値は00です。 ss.sssssssss省略可-
00~59の 2 桁の数値です。必要に応じて、その後に.または,と、1 桁から 9 桁の数字が続く場合があります。デフォルトは00です。HH、mm、ssの各要素は、:で区切るか、区切らないかを選択できます。ssのみ、あるいはssとmmの両方を省略できるため、時刻はHH、HH:mm、またはHH:mm:ss.sssssssssの 3 つの形式のいずれかになります。 [u-ca=calendar_id]省略可-
calendar_idを、使用する暦に置き換えます。一般的に対応している暦の種類のリストについては、Intl.supportedValuesOf()を参照してください。デフォルトは[u-ca=iso8601]です。キーの先頭に!をつけて、[!u-ca=iso8601]のように重要フラグを持たせることができます。このフラグは、一般的に、他のシステムに対して、対応していない場合でも無視してはならないことを指示します。Temporalパーサーでは、注釈に 2 つ以上のカレンダー注釈が含まれており、そのうちの 1 つが重要フラグ付きの場合、エラーが発生します。なお、YYYY-MM-DDは常に ISO 8601 暦の日付として解釈され、その後、指定された暦に変換される点にご注意ください。
入力として、オプションでオフセットとタイムゾーン識別子を ZonedDateTime と同じ書式で含めることができますが、これらは無視されます。なお、オフセットは Z であってはいけません。それ以外の [key=value] 形式の注釈も同時に無視されます。また、これらの注釈には重要フラグを指定してはいけません。
シリアライズを行う際、小数点以下の桁数、カレンダー ID を表示させるかどうか、重要フラグを追加するかどうかを設定できます。
コンストラクター
Temporal.PlainDateTime()Experimental-
基盤となるデータを直接指定して、新しい
Temporal.PlainDateTimeオブジェクトを作成します。
静的メソッド
Temporal.PlainDateTime.compare()-
1 つ目の日時が 2 つ目の日時よりも前か、同じか、後かを示す数値(-1、0、1 のいずれか)を返します。まず日付を比較し、日付が同じ場合は次に時刻を比較することと同等です。
Temporal.PlainDateTime.from()-
新しい
Temporal.PlainDateTimeオブジェクトを、別のTemporal.PlainDateTimeオブジェクト、日付および時刻のプロパティを持つオブジェクト、RFC 9557 形式の文字列からのいずれかから作成します。
インスタンスプロパティ
これらのプロパティは Temporal.PlainDateTime.prototype に定義されており、すべての Temporal.PlainDateTime インスタンスで共有されています。
Temporal.PlainDateTime.prototype.calendarId-
内部の ISO 8601 日付を解釈するために使用する暦を表す文字列を返します。
Temporal.PlainDateTime.prototype.constructor-
このインスタンスオブジェクトを作成したコンストラクター関数です。
Temporal.PlainDateTimeのインスタンスの場合、初期値はTemporal.PlainDateTime()コンストラクターとなります。 Temporal.PlainDateTime.prototype.day-
この日付の月における、1 を起点とする日のインデックスを表す正の整数を返します。これは、カレンダーで表示される日の数値と同じものです。暦に依存します。通常は 1 から始まり連続していますが、常にそうとは限りません。
Temporal.PlainDateTime.prototype.dayOfWeek-
この日付を含む週における、1 を起点とする曜日のインデックスを表す正の整数を返します。曜日の番号は
1からdaysInWeekまで順に付けられ、それぞれの番号はその曜日の名称に対応しています。暦に依存します。通常、1 は暦における月曜日を表しますが、その暦を使用するロケールによっては、週の初日を別の曜日と考えてみる場合があります(Intl.Locale.prototype.getWeekInfo()を参照)。 Temporal.PlainDateTime.prototype.dayOfYear-
この日付の年における、1 を起点とする日のインデックスを表す正の整数を返します。この年の初日は
1であり、最終日はdaysInYearです。暦に依存します。 Temporal.PlainDateTime.prototype.daysInMonth-
この日付の月の日数を表す正の整数を返します。暦に依存します。
Temporal.PlainDateTime.prototype.daysInWeek-
この日付の週に含まれる日数を表す正の整数を返します。暦に依存します。 ISO 8601 暦では、この数字は常に 7 ですが、他の暦体系では週ごとに異なることがあります。
Temporal.PlainDateTime.prototype.daysInYear-
この日付の属する年の日数を表す正の整数を返します。暦に依存します。 ISO 8601 暦では、この日は 365 日、閏年の場合は 366 日となります。
Temporal.PlainDateTime.prototype.era-
この日付の時代を、使用している暦に固有の小文字の文字列として返します。暦が時代を使用しない場合(ISO 8601 など)は
undefinedを返します。eraとeraYearを組み合わせることで、yearと同様に、暦内の年を一意に特定することができます。暦に依存します。 グレゴリオ暦では、"ce"または"bce"のどちらかです。 Temporal.PlainDateTime.prototype.eraYear-
この日付が属する時代における年を非負の整数で表します。暦が時代を使用していない場合(ISO 8601 など)は
undefinedを返します。年のインデックスは通常、1(より一般的)または 0 から始まり、紀元内の年は時間の経過とともに減少させることも可能です(例:グレゴリオ暦の BCE)。eraとeraYearを組み合わせることで、yearと同様に、カレンダー内の年を一意に特定することができます。暦に依存します。 Temporal.PlainDateTime.prototype.hour-
この時刻の時間成分を表す 0 から 23 までの整数を返します。
Temporal.PlainDateTime.prototype.inLeapYear-
この日付が閏年であるかどうかを示す論理値を返します。閏年とは、閏日や閏月があるため、平年よりも日数が多くなる年のことです。暦に依存します。
Temporal.PlainDateTime.prototype.microsecond-
この時刻のマイクロ秒(10-6 秒)成分を表す 0 から 999 までの整数を返します。
Temporal.PlainDateTime.prototype.millisecond-
この時刻のミリ秒(10-3 秒)成分を表す 0 から 999 までの整数を返します。
Temporal.PlainDateTime.prototype.minute-
この時刻の分の成分を表す 0 から 59 までの整数を返します。
Temporal.PlainDateTime.prototype.month-
この日付の年における、1 を起点とする月のインデックスを表す正の整数を返します。この年の最初の月は
1であり、最後の月はmonthsInYearです。暦に依存します。 なお、Date.prototype.getMonth()とは異なり、インデックスは 1 から始まります。カレンダーに閏月が含まれる場合、同じmonthCodeを持つ月でも、年によってmonthインデックスが異なることがあります。 Temporal.PlainDateTime.prototype.monthCode-
この日付の月を表す、暦に依存した文字列を返します。暦に依存します。 通常は
Mに 2 桁の月番号が加わります。閏月の場合、前回月のコードにLが続きます。閏月が年の最初の月である場合、コードはM00Lとなります。 Temporal.PlainDateTime.prototype.monthsInYear-
この日付が属する年の月数を表す正の整数を返します。暦に依存します。 ISO 8601 暦では、この数字は常に 12 ですが、その他の暦体系では異なる場合があります。
Temporal.PlainDateTime.prototype.nanosecond-
この時刻のナノ秒(10-9 秒)成分を表す 0 から 999 までの整数を返します。
Temporal.PlainDateTime.prototype.second-
この時刻の秒の成分を表す 0 から 59 までの整数を返します。
Temporal.PlainDateTime.prototype.weekOfYear-
この日付における
yearOfWeekでの、1 を起点とする週のインデックスを表す正の整数を返します。カレンダーが明確に定義された週の制度を持たない場合はundefinedを返します。年の最初の週は1です。暦に依存します。 なお、ISO 8601 では、年の最初と最後の数日間は、前回年の最後の週、あるいは翌年の最初の週に関連付けられることがあります。 Temporal.PlainDateTime.prototype.year-
この日付が、その暦固有の元期年から経過した年数を表す整数を返します。暦に依存します。 通常、1 年目は、最新の時代の最初の年、あるいは ISO 8601 の年号
0001のどちらかになります。元期が年の途中にある場合、その年は時代の開始日以前と後で同じ値を持ちます。 Temporal.PlainDateTime.prototype.yearOfWeek-
この日付の
weekOfYearに対応する年を表す整数を返します。その暦に明確に定義された週の制度がない場合は、undefinedを返します。暦に依存します。 通常、これは年の週番号ですが、ISO 8601 では、年の最初と最後の数日間は、前回年の最後の週または翌年の最初の週に関連付けられる場合があり、その結果、yearOfWeekが 1 だけずれることがあります。 Temporal.PlainDateTime.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]プロパティの初期値は文字列"Temporal.PlainDateTime"です。このプロパティはObject.prototype.toString()で使用されます。
インスタンスメソッド
Temporal.PlainDateTime.prototype.add()-
新しい
Temporal.PlainDateTimeオブジェクトを作成し、この日時を、指定された時間(Temporal.Duration.from()で変換可能な形式のもの)だけ未来へ移動させた値を設定して返します。 Temporal.PlainDateTime.prototype.equals()-
この日時が別の日時(
Temporal.PlainDateTime.from()で変換可能な形式のもの)と値が等しい場合はtrueを返し、そうでない場合はfalseを返します。これらは日付と時刻の値だけでなく、暦によっても比較されるため、異なる暦に基づく 2 つの日時が、Temporal.PlainDateTime.compare()では等しいとみなされる場合でも、equals()では等しいとはみなされないことがあります。 Temporal.PlainDateTime.prototype.round()-
新しい
Temporal.PlainDateTimeオブジェクトを作成し、指定された単位に丸められたこの日時を表す値を設定して返します。 Temporal.PlainDateTime.prototype.since()-
新しい
Temporal.Durationオブジェクトを作成し、別の日時(Temporal.PlainDateTime.from()で変換可能な形式のもの)からこの日時までの経過時間を設定して返します。別の日時がこの日時より前の場合は経過時間は正の値となり、後の場合は負の値となります。 Temporal.PlainDateTime.prototype.subtract()-
新しい
Temporal.PlainDateTimeオブジェクトを作成し、この日時から、指定された期間(Temporal.Duration.from()で変換可能な形式のもの)だけ過去へ移動させた値を設定して返します。 Temporal.PlainDateTime.prototype.toJSON()-
この日時を表す文字列を、
toString()を呼び出した場合と同じ RFC 9557 形式で返します。JSON.stringify()によって暗黙的に呼び出されることを意図しています。 Temporal.PlainDateTime.prototype.toLocaleString()-
この日時を、言語に応じた形式で表した文字列で返します。
Temporal.PlainDateTime.prototype.toPlainDate()-
新しい
Temporal.PlainDateオブジェクトを作成し、この日時と同じ暦体系における日付部分(年、月、日)を表す値を設定して返します。 Temporal.PlainDateTime.prototype.toPlainTime()-
新しい
Temporal.PlainTimeオブジェクトを作成し、この日時の時刻部分(時、分、秒、ミリ秒の各成分)を表す値を設定して返します。 Temporal.PlainDateTime.prototype.toString()-
指定されたタイムゾーンを使用して、この日時を表す RFC 9557 形式の文字列を返します。
Temporal.PlainDateTime.prototype.toZonedDateTime()-
新しい
Temporal.ZonedDateTimeインスタンスを作成し、この生の日時と同じ日時を、指定されたタイムゾーンで表した値を設定します。 Temporal.PlainDateTime.prototype.until()-
新しい
Temporal.Durationオブジェクトを作成し、この日時からある日時(Temporal.PlainDateTime.from()によって変換可能な形式のもの)までの期間を表す値を設定して返します。この期間は、ある日時がこの日時の後にある場合には正の値となり、前にある場合は負の値となります。 Temporal.PlainDateTime.prototype.valueOf()-
TypeErrorが発生します。これにより、算術演算や比較演算で使用される際、Temporal.PlainDateTimeのインスタンスがプリミティブ型へ暗黙的に変換されることが防止されます。 Temporal.PlainDateTime.prototype.with()-
新しい
Temporal.PlainDateTimeオブジェクトを作成し、この日時の一部のフィールドを新しい値に置き換えたものを表したものを設定して返します。 Temporal.PlainDateTime.prototype.withCalendar()-
新しい
Temporal.PlainDateTimeオブジェクトを作成し、新しい暦体系で表したこの日時を設定して返します。 Temporal.PlainDateTime.prototype.withPlainTime()-
新しい
Temporal.PlainDateTimeオブジェクトを作成し、この日時のうち時刻部分が完全に新しい時刻(Temporal.PlainTime.from()で変換可能な形式のもの)に完全に置き換えたものを表す値を設定して返します。
仕様書
| Specification |
|---|
| Temporal> # sec-temporal-plaindatetime-objects> |