DateTimeOffset 構造体
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
協定世界時 (UTC) を基準として、通常は日付と時刻として表される特定の時点を表します。
public value class DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IFormattable
public value class DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IFormattable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public struct DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IFormattable
[System.Serializable]
public struct DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public struct DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public readonly struct DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type DateTimeOffset = struct
interface IFormattable
[<System.Serializable>]
type DateTimeOffset = struct
interface IFormattable
interface ISerializable
interface IDeserializationCallback
type DateTimeOffset = struct
interface IFormattable
interface IDeserializationCallback
interface ISerializable
Public Structure DateTimeOffset
Implements IComparable, IComparable(Of DateTimeOffset), IEquatable(Of DateTimeOffset), IFormattable
Public Structure DateTimeOffset
Implements IComparable, IComparable(Of DateTimeOffset), IDeserializationCallback, IEquatable(Of DateTimeOffset), IFormattable, ISerializable
- 継承
- 属性
- 実装
注釈
DateTimeOffset構造体には、現在のDateTime インスタンスの日時と協定世界時 (UTC) の差を定義するOffset プロパティと共に、DateTimeOffset値が含まれています。 UTC に対する日付と時刻を正確に定義するため、DateTimeOffset構造体には、Kind構造体と同様に、DateTimeメンバーは含まれません。 これは、UTC の範囲が 12:00:00:00、0001 年 1 月 1 日の Anno Domini (Common Era) から、9999 年 12 月 31 日午後 11 時 59 分 59 分 59 秒 (C.E.) までの日付と時刻を表します。
Important
日本暦の年号は天皇の治世に基づいているため、変化することが期待されます。 たとえば、2019 年 5 月 1 日は、 JapaneseCalendar と JapaneseLunisolarCalendarのレイワ時代の始まりを迎えています。 このような時代の変化は、これらのカレンダーを使用するすべてのアプリケーションに影響します。 詳細およびアプリケーションが影響を受けるかどうかを判断するには、「 .NET の日本語カレンダーでの新しい時代 (年号) の処理」を参照してください。 Windows システムでアプリケーションをテストし、時代 (年号) の変更に対する準備を行う方法については、「 日本の時代 (年号) に合わせてアプリケーションを準備する」を参照してください。 複数の時代 (年号) を含むカレンダーをサポートする .NET の機能と、複数の時代 (年号) をサポートするカレンダーを使用する場合のベスト プラクティスについては、「 年号の使用」を参照してください。
DateTimeOffset値の時間成分はティックと呼ばれる 100 ナノ秒単位で測定され、特定の日付は、GregorianCalendar カレンダーの 0001 年 1 月 1 日午前 12 時 00 分からのティック数です。 DateTimeOffset値は、常に明示的または既定のカレンダーのコンテキストで表されます。 閏秒に起因するティックは、ティックの合計数には含まれません。
DateTimeOffset値にはオフセットが含まれますが、完全なタイム ゾーン対応のデータ構造ではありません。 UTC からのオフセットはタイム ゾーンの特性の 1 つですが、タイム ゾーンを明確に識別することはありません。 複数のタイム ゾーンが UTC からの同じオフセットを共有するだけでなく、夏時間が観察されると、1 つのタイム ゾーンのオフセットが変わります。 つまり、 DateTimeOffset 値がタイム ゾーンとの関連付けが解除されるとすぐに、元のタイム ゾーンに明確にリンクできなくなります。
DateTimeOffsetは構造体であるため、宣言されているが初期化されていないDateTimeOffset オブジェクトには、各メンバー フィールドの既定値が含まれます。 つまり、 DateTime プロパティは DateTimeOffset.MinValue に設定され、 Offset プロパティは TimeSpan.Zero に設定されます。
DateTimeOffset構造体のオーバーロードされたコンストラクターに似たコンストラクターのオーバーロードのいずれかを呼び出すことによって、新しいDateTime値を作成できます。 DateTimeOffset値を割り当てることで、新しいDateTime値を作成することもできます。 これは暗黙的な変換です。キャスト演算子 (C# の場合) や変換メソッドの呼び出し (Visual Basic の場合) は必要ありません。 DateTimeOffset、Parse、ParseExact、TryParseなど、さまざまな静的文字列解析メソッドを呼び出すことによって、日付と時刻の文字列形式からTryParseExact値を初期化することもできます。
DateTimeOffset構造体のメンバーは、次の領域で機能を提供します。
日付と時刻の算術演算。
特定の DateTimeOffset 値から日付または時間間隔を加算または減算できます。 DateTimeOffset値を使用した算術演算は、DateTime値を持つ演算とは異なり、結果を返すときの時間オフセットの違いを調整します。 たとえば、次のコードでは、 DateTime 変数を使用して、現在の UTC 時刻から現在の現地時刻を減算します。 その後、コードは DateTimeOffset 変数を使用して同じ操作を実行します。 DateTime値を使用した減算はローカル タイム ゾーンの UTC との差を返し、DateTimeOffset値を使用した減算はTimeSpan.Zeroを返します。
using System; public class DateArithmetic { public static void Main() { DateTime date1, date2; DateTimeOffset dateOffset1, dateOffset2; TimeSpan difference; // Find difference between Date.Now and Date.UtcNow date1 = DateTime.Now; date2 = DateTime.UtcNow; difference = date1 - date2; Console.WriteLine("{0} - {1} = {2}", date1, date2, difference); // Find difference between Now and UtcNow using DateTimeOffset dateOffset1 = DateTimeOffset.Now; dateOffset2 = DateTimeOffset.UtcNow; difference = dateOffset1 - dateOffset2; Console.WriteLine("{0} - {1} = {2}", dateOffset1, dateOffset2, difference); // If run in the Pacific Standard time zone on 4/2/2007, the example // displays the following output to the console: // 4/2/2007 7:23:57 PM - 4/3/2007 2:23:57 AM = -07:00:00 // 4/2/2007 7:23:57 PM -07:00 - 4/3/2007 2:23:57 AM +00:00 = 00:00:00 } }open System // Find difference between Date.Now and Date.UtcNow let date1 = DateTime.Now let date2 = DateTime.UtcNow let difference1 = date1 - date2 printfn $"{date1} - {date2} = {difference1}" // Find difference between Now and UtcNow using DateTimeOffset let dateOffset1 = DateTimeOffset.Now let dateOffset2 = DateTimeOffset.UtcNow let difference2 = dateOffset1 - dateOffset2 printfn $"{dateOffset1} - {dateOffset2} = {difference2}" // If run in the Pacific Standard time zone on 1/7/2022, the example // displays the following output to the console: // 1/7/2022 6:45:10 PM - 1/8/2022 2:45:10 AM = -08:00:00.0072573 // 1/7/2022 6:45:10 PM -08:00 - 1/8/2022 2:45:10 AM +00:00 = -00:00:00.0000278Module DateArithmetic Public Sub Main() Dim date1, date2 As Date Dim dateOffset1, dateOffset2 As DateTimeOffset Dim difference As TimeSpan ' Find difference between Date.Now and Date.UtcNow date1 = Date.Now date2 = Date.UtcNow difference = date1 - date2 Console.WriteLine("{0} - {1} = {2}", date1, date2, difference) ' Find difference between Now and UtcNow using DateTimeOffset dateOffset1 = date.Now dateOffset2 = date.UtcNow difference = dateOffset1 - dateOffset2 Console.WriteLine("{0} - {1} = {2}", _ dateOffset1, dateOffset2, difference) ' If run in the Pacific Standard time zone on 4/2/2007, the example ' displays the following output to the console: ' 4/2/2007 7:23:57 PM - 4/3/2007 2:23:57 AM = -07:00:00 ' 4/2/2007 7:23:57 PM -07:00 - 4/3/2007 2:23:57 AM +00:00 = 00:00:00 End Sub End Module型変換操作。
DateTimeOffset値をDateTime値に変換したり、その逆を行うことができます。
時間操作と抽出操作。
DateTimeOffset値の日付または時刻を抽出できます。 特定の DateTimeOffset コンポーネントの値 (年や月など) を取得することもできます。
Note
分や秒などの他の時間間隔に変換するティック値を使用する場合は、 TimeSpan.TicksPerDay、 TimeSpan.TicksPerHour、 TimeSpan.TicksPerMinute、 TimeSpan.TicksPerSecond、または TimeSpan.TicksPerMillisecond 定数を使用して変換を実行する必要があります。 たとえば、指定したティック数で表される秒数をSecond値のDateTimeOffsetコンポーネントに追加するには、式
dateValue.Second + nTicks/Timespan.TicksPerSecondを使用します。日付と時刻の変換。
任意の DateTimeOffset 値を、別のタイム ゾーン内の同じ時点を表す別の DateTimeOffset 値に変換できます。 ただし、タイム ゾーンの調整規則は、 ToLocalTime メソッドの場合にのみ適用され、 DateTimeOffset 値がローカル システム ゾーンの日付と時刻に変換されます。
日付と時刻の比較。
特定の DateTimeOffset 値が、別の DateTimeOffset 値よりも前か、同じか、またはそれ以降かを判断できます。 比較を実行する前に、すべての値が UTC に変換されます。
コンストラクター
| 名前 | 説明 |
|---|---|
| DateTimeOffset(DateTime, TimeSpan) |
指定したDateTimeOffset値とDateTimeを使用して、 |
| DateTimeOffset(DateTime) |
指定したDateTimeOffset値を使用して、DateTime構造体の新しいインスタンスを初期化します。 |
| DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, TimeSpan) |
指定したDateTimeOffset、 |
| DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, TimeSpan) |
指定したDateTimeOffset、 |
| DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, TimeSpan) |
指定したDateTimeOffset、 |
| DateTimeOffset(Int64, TimeSpan) |
指定した数のDateTimeOffsetと |
フィールド
| 名前 | 説明 |
|---|---|
| MaxValue |
DateTimeOffsetの可能な限り大きな値を表します。 このフィールドは読み取り専用です。 |
| MinValue |
可能な限り早い DateTimeOffset 値を表します。 このフィールドは読み取り専用です。 |
| UnixEpoch |
この定数の値は、グレゴリオ暦の 1970 年 1 月 1 日の 00:00:00.00000000 UTC に相当します。 UnixEpoch は、Unix 時刻が 0 に等しい時点を定義します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Date |
現在のDateTime オブジェクトの日付コンポーネントを表すDateTimeOffset値を取得します。 |
| DateTime |
現在のDateTime オブジェクトの日時を表すDateTimeOffset値を取得します。 |
| Day |
現在の DateTimeOffset オブジェクトによって表される月の日を取得します。 |
| DayOfWeek |
現在の DateTimeOffset オブジェクトによって表される曜日を取得します。 |
| DayOfYear |
現在の DateTimeOffset オブジェクトによって表される年の日を取得します。 |
| Hour |
現在の DateTimeOffset オブジェクトによって表される時間の時間の要素を取得します。 |
| LocalDateTime |
現在のDateTime オブジェクトのローカル日時を表すDateTimeOffset値を取得します。 |
| Millisecond |
現在の DateTimeOffset オブジェクトによって表される時間のミリ秒の要素を取得します。 |
| Minute |
現在の DateTimeOffset オブジェクトによって表される時刻の分部分を取得します。 |
| Month |
現在の DateTimeOffset オブジェクトによって表される日付の月コンポーネントを取得します。 |
| Now |
現在のコンピューター上の現在の日時に設定され、オフセットが世界協定時刻 (UTC) からのローカル時刻のオフセットに設定された DateTimeOffset オブジェクトを取得します。 |
| Offset |
協定世界時 (UTC) からの時刻のオフセットを取得します。 |
| Second |
現在の DateTimeOffset オブジェクトによって表されるクロック時間の 2 番目のコンポーネントを取得します。 |
| Ticks |
現在の DateTimeOffset オブジェクトの日付と時刻をクロック時間で表すティック数を取得します。 |
| TimeOfDay |
現在の DateTimeOffset オブジェクトの時刻を取得します。 |
| UtcDateTime |
現在のDateTime オブジェクトの協定世界時 (UTC) の日付と時刻を表すDateTimeOffset値を取得します。 |
| UtcNow |
日付と時刻が現在の世界協定時刻 (UTC) の日付と時刻に設定され、オフセットがDateTimeOffsetZeroオブジェクトを取得します。 |
| UtcTicks |
世界協定時刻 (UTC) の現在の DateTimeOffset オブジェクトの日時を表すティック数を取得します。 |
| Year |
現在の DateTimeOffset オブジェクトによって表される日付の年コンポーネントを取得します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Add(TimeSpan) |
指定した時間間隔をこのインスタンスの値に追加する新しい DateTimeOffset オブジェクトを返します。 |
| AddDays(Double) |
このインスタンスの値に指定した日数と小数部の日数を加算する新しい DateTimeOffset オブジェクトを返します。 |
| AddHours(Double) |
このインスタンスの値に指定した時間の整数と小数部の時間数を加算する新しい DateTimeOffset オブジェクトを返します。 |
| AddMilliseconds(Double) |
このインスタンスの値に指定したミリ秒を加算する新しい DateTimeOffset オブジェクトを返します。 |
| AddMinutes(Double) |
このインスタンスの値に指定した整数分数と小数部分数を加算する新しい DateTimeOffset オブジェクトを返します。 |
| AddMonths(Int32) |
指定した月数をこのインスタンスの値に追加する新しい DateTimeOffset オブジェクトを返します。 |
| AddSeconds(Double) |
このインスタンスの値に指定した秒数と秒の小数部を加算する新しい DateTimeOffset オブジェクトを返します。 |
| AddTicks(Int64) |
指定したティック数をこのインスタンスの値に追加する新しい DateTimeOffset オブジェクトを返します。 |
| AddYears(Int32) |
このインスタンスの値に指定した年数を加算する新しい DateTimeOffset オブジェクトを返します。 |
| Compare(DateTimeOffset, DateTimeOffset) |
2 つの DateTimeOffset オブジェクトを比較し、最初のオブジェクトが 2 番目のオブジェクトより前か、2 番目のオブジェクトと等しいか、2 番目のオブジェクトより後にあるかを示します。 |
| CompareTo(DateTimeOffset) |
現在の DateTimeOffset オブジェクトを指定した DateTimeOffset オブジェクトと比較し、現在のオブジェクトが 2 番目の DateTimeOffset オブジェクトよりも前か、同じか、またはそれ以降であるかを示します。 |
| Equals(DateTimeOffset, DateTimeOffset) |
指定した 2 つの DateTimeOffset オブジェクトが同じ時点を表すかどうかを判断します。 |
| Equals(DateTimeOffset) |
現在の DateTimeOffset オブジェクトが、指定した DateTimeOffset オブジェクトと同じ時点を表すかどうかを判断します。 |
| Equals(Object) |
DateTimeOffset オブジェクトが指定したオブジェクトと同じ時点を表すかどうかを判断します。 |
| EqualsExact(DateTimeOffset) |
現在の DateTimeOffset オブジェクトが同じ時刻を表し、指定した DateTimeOffset オブジェクトと同じオフセットを持っているかどうかを判断します。 |
| FromFileTime(Int64) |
指定した Windows ファイル時刻を同等の現地時刻に変換します。 |
| FromUnixTimeMilliseconds(Int64) |
1970-01-01T00:00:00Z から経過したミリ秒数で表された Unix 時刻を DateTimeOffset 値に変換します。 |
| FromUnixTimeSeconds(Int64) |
1970-01-01T00:00:00Z 以降に経過した秒数で表された Unix 時刻を DateTimeOffset 値に変換します。 |
| GetHashCode() |
現在の DateTimeOffset オブジェクトのハッシュ コードを返します。 |
| Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) |
指定したカルチャ固有の書式情報と書式設定スタイルを使用して、指定した日付と時刻のスパン表現を、その DateTimeOffset に相当する形式に変換します。 |
| Parse(String, IFormatProvider, DateTimeStyles) |
指定したカルチャ固有の書式情報と書式設定スタイルを使用して、日付と時刻の指定した文字列形式を等価の DateTimeOffset に変換します。 |
| Parse(String, IFormatProvider) |
指定したカルチャ固有の書式情報を使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset に変換します。 |
| Parse(String) |
指定した日付、時刻、およびオフセットの文字列形式を等価の DateTimeOffset に変換します。 |
| ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) |
指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻を表す文字スパンを同等の DateTimeOffset に変換します。 日付と時刻の形式は、指定した形式と正確に一致する必要があります。 |
| ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) |
指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻の文字列形式を含む文字スパンを同等の DateTimeOffset に変換します。 日付と時刻の形式は、指定した形式のいずれかと正確に一致する必要があります。 |
| ParseExact(String, String, IFormatProvider, DateTimeStyles) |
指定した形式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻の指定した文字列形式を等価の DateTimeOffset に変換します。 文字列形式の形式は、指定した形式と正確に一致する必要があります。 |
| ParseExact(String, String, IFormatProvider) |
指定した形式とカルチャ固有の書式情報を使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset に変換します。 文字列形式の形式は、指定した形式と正確に一致する必要があります。 |
| ParseExact(String, String[], IFormatProvider, DateTimeStyles) |
指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻の指定した文字列形式を等価の DateTimeOffset に変換します。 文字列形式の形式は、指定した形式のいずれかと正確に一致する必要があります。 |
| Subtract(DateTimeOffset) |
現在のDateTimeOffset オブジェクトから、特定の日時を表すDateTimeOffset値を減算します。 |
| Subtract(TimeSpan) |
現在の DateTimeOffset オブジェクトから指定した時間間隔を減算します。 |
| ToFileTime() |
現在の DateTimeOffset オブジェクトの値を Windows ファイル時刻に変換します。 |
| ToLocalTime() |
現在の DateTimeOffset オブジェクトを、ローカル時刻を表す DateTimeOffset オブジェクトに変換します。 |
| ToOffset(TimeSpan) |
現在の DateTimeOffset オブジェクトの値を、オフセット値で指定された日時に変換します。 |
| ToString() |
現在の DateTimeOffset オブジェクトの値を等価の文字列形式に変換します。 |
| ToString(IFormatProvider) |
指定したカルチャ固有の書式設定情報を使用して、現在の DateTimeOffset オブジェクトの値を等価の文字列形式に変換します。 |
| ToString(String, IFormatProvider) |
現在の DateTimeOffset オブジェクトの値を、指定した書式およびカルチャ固有の書式情報を使用して、同等の文字列形式に変換します。 |
| ToString(String) |
指定した形式を使用して、現在の DateTimeOffset オブジェクトの値を等価の文字列形式に変換します。 |
| ToUniversalTime() |
現在の DateTimeOffset オブジェクトを協定世界時 (UTC) を表す DateTimeOffset 値に変換します。 |
| ToUnixTimeMilliseconds() |
1970-01-01T00:00:00.000Z から経過したミリ秒数を返します。 |
| ToUnixTimeSeconds() |
1970-01-01T00:00:00Z から経過した秒数を返します。 |
| TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
現在の datetime オフセット インスタンスの値を、指定された文字数範囲に書式設定しようとします。 |
| TryParse(ReadOnlySpan<Char>, DateTimeOffset) |
日付と時刻の指定されたスパン表現を同等の DateTimeOffset に変換し、変換が成功したかどうかを示す値を返します。 |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTimeOffset) |
日付と時刻の指定されたスパン表現を同等の DateTimeOffset に変換し、変換が成功したかどうかを示す値を返します。 |
| TryParse(String, DateTimeOffset) |
日付と時刻の指定した文字列形式を等価の DateTimeOffset に変換し、変換が成功したかどうかを示す値を返します。 |
| TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset) |
日付と時刻の指定した文字列形式を等価の DateTimeOffset に変換し、変換が成功したかどうかを示す値を返します。 |
| TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTimeOffset) |
指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、文字スパン内の日付と時刻の表現を同等の DateTimeOffset に変換します。 日付と時刻の形式は、指定した形式と正確に一致する必要があります。 |
| TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) |
指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、文字スパン内の日付と時刻の表現を同等の DateTimeOffset に変換します。 日付と時刻の形式は、指定した形式のいずれかと正確に一致する必要があります。 |
| TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) |
指定した形式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻の指定した文字列形式を等価の DateTimeOffset に変換します。 文字列形式の形式は、指定した形式と正確に一致する必要があります。 |
| TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) |
指定した形式の配列、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻の指定した文字列形式を等価の DateTimeOffset に変換します。 文字列形式の形式は、指定した形式のいずれかと正確に一致する必要があります。 |
演算子
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IComparable.CompareTo(Object) |
現在の DateTimeOffset オブジェクトの値を、同じ型の別のオブジェクトと比較します。 |
| IDeserializationCallback.OnDeserialization(Object) |
オブジェクトの逆シリアル化が完了したときに実行されます。 |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
現在のSerializationInfo オブジェクトをシリアル化するために必要なデータをDateTimeOffset オブジェクトに設定します。 |