添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
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 value class DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, ISpanFormattable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public value class DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IParsable<DateTimeOffset>, ISpanFormattable, ISpanParsable<DateTimeOffset>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public value class DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IParsable<DateTimeOffset>, ISpanFormattable, ISpanParsable<DateTimeOffset>, IUtf8SpanFormattable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public struct DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IFormattable
public readonly 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>, ISpanFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public readonly struct DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IParsable<DateTimeOffset>, ISpanFormattable, ISpanParsable<DateTimeOffset>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public readonly struct DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IParsable<DateTimeOffset>, ISpanFormattable, ISpanParsable<DateTimeOffset>, IUtf8SpanFormattable, 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
[System.Serializable]
public struct DateTimeOffset : IComparable, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>, IFormattable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type DateTimeOffset = struct
    interface IFormattable
type DateTimeOffset = struct
    interface IFormattable
    interface IDeserializationCallback
    interface ISerializable
type DateTimeOffset = struct
    interface ISpanFormattable
    interface IFormattable
    interface IDeserializationCallback
    interface ISerializable
type DateTimeOffset = struct
    interface IFormattable
    interface IParsable<DateTimeOffset>
    interface ISpanFormattable
    interface ISpanParsable<DateTimeOffset>
    interface IDeserializationCallback
    interface ISerializable
type DateTimeOffset = struct
    interface IFormattable
    interface IParsable<DateTimeOffset>
    interface ISpanFormattable
    interface ISpanParsable<DateTimeOffset>
    interface IDeserializationCallback
    interface ISerializable
    interface IUtf8SpanFormattable
type DateTimeOffset = struct
    interface IFormattable
    interface IParsable<DateTimeOffset>
    interface ISpanFormattable
    interface ISpanParsable<DateTimeOffset>
    interface IUtf8SpanFormattable
    interface IDeserializationCallback
    interface ISerializable
[<System.Serializable>]
type DateTimeOffset = struct
    interface IFormattable
    interface ISerializable
    interface IDeserializationCallback
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
Public Structure DateTimeOffset
Implements IComparable, IComparable(Of DateTimeOffset), IDeserializationCallback, IEquatable(Of DateTimeOffset), ISerializable, ISpanFormattable
Public Structure DateTimeOffset
Implements IComparable, IComparable(Of DateTimeOffset), IDeserializationCallback, IEquatable(Of DateTimeOffset), IParsable(Of DateTimeOffset), ISerializable, ISpanFormattable, ISpanParsable(Of DateTimeOffset)
Public Structure DateTimeOffset
Implements IComparable, IComparable(Of DateTimeOffset), IDeserializationCallback, IEquatable(Of DateTimeOffset), IParsable(Of DateTimeOffset), ISerializable, ISpanFormattable, ISpanParsable(Of DateTimeOffset), IUtf8SpanFormattable
Object
DateTimeOffset

結構 DateTimeOffset 包含 DateTime 值,以及 Offset 定義目前 DateTimeOffset 實例日期和時間與國際標準時間 (UTC) 之間差異的屬性。 由於它確實定義相對於UTC的日期和時間,因此 DateTimeOffset 結構不會包含 Kind 成員,因為 DateTime 結構確實如此。 其代表日期和時間,其 UTC 範圍從 12:00:00 午夜、0001 Anno Domini (Common Era) 到 11:59:59:59 P.M.,9999 A.D. (C.E.) 。

日本曆法的紀元是以天皇的統治為基礎,因此有變更是正常的。 例如,2019 年 5 月 1 日之後, JapaneseCalendar JapaneseLunisolarCalendar 中將開始使用「令和」。 此變更對使用這些日曆的所有應用程式都有影響。 如需詳細資訊,以及判斷您的應用程式是否受到影響,請參閱 在 .NET 中處理日曆的新紀元 。 如需在 Windows 系統上測試應用程式以確保其對紀元變更整備的資訊,請參閱 為日文紀元變更準備您的應用程式 。 如需支援多個紀元之行事歷的 .NET 功能,以及使用支援多個紀元的行事歷時的最佳做法,請參閱 使用紀 元。

值的時間元件 DateTimeOffset 是以稱為刻度的 100 奈秒單位來測量,而特定日期則是自 0001 年 1 月 1 日上午 12:00 起算的刻度數。 (C.E.) 行事曆中 GregorianCalendar 。 值 DateTimeOffset 一律以明確或預設行事曆的內容表示。 可除以閏秒為單位的刻度不會包含在刻度總數中。

DateTimeOffset 雖然值包含位移,但它不是完整的時區感知數據結構。 雖然UTC的位移是時區的一個特性,但不會明確識別時區。 不僅多個時區與UTC共用相同的位移,如果單一時區觀察到日光節約時間,則單一時區的位移也會變更。 這表示,一旦 DateTimeOffset 值與其時區解除關聯,就無法再明確連結回其原始時區。

因為 DateTimeOffset 是結構, DateTimeOffset 所以已宣告但未初始化的物件包含其每個成員欄位的預設值。 這表示其 DateTime 屬性設定為 DateTimeOffset.MinValue ,且其 Offset 屬性設定為 TimeSpan.Zero

您可以呼叫其建構函式的任何多載來建立新的 DateTimeOffset 值,這類似於 結構的多載建構 DateTime 函式。 您也可以藉由指派值來 DateTime 建立新的 DateTimeOffset 值。 這是隱含轉換;它不需要 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.0000278
    
    Module 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
    
  • 類型轉換作業。

    您可以將值轉換成DateTimeOffsetDateTime值,反之亦然。

  • 時間操作和擷取作業。

    您可以擷取值的日期或時間 DateTimeOffset 。 您也可以擷取特定 DateTimeOffset 元件的值,例如其年份或月份。

    如果您要使用想要轉換成某些其他時間間隔的刻度值,例如分鐘或秒,您應該使用 TimeSpan.TicksPerDayTimeSpan.TicksPerHourTimeSpan.TicksPerMinuteTimeSpan.TicksPerSecondTimeSpan.TicksPerMillisecond 常數來執行轉換。 例如,若要將指定刻度 Second 數目所代表的 DateTimeOffset 秒數加入至值的元件,您可以使用表示式 dateValue.Second + nTicks/Timespan.TicksPerSecond

  • 日期和時間轉換。

    您可以將任何 DateTimeOffset 值轉換成另一個 DateTimeOffset 值,代表另一個時區中的相同時間點。 不過,只有在 ToLocalTime 方法的情況下,才會套用時區的調整規則,以將值轉換成 DateTimeOffset 本機系統區域中的日期和時間。

  • 日期和時間比較。

    您可以判斷任何特定 DateTimeOffset 值是否早於、相同或晚於另一個 DateTimeOffset 值。 在執行比較之前,所有值都會轉換成UTC。

    在 DateTime、DateTimeOffset、 TimeSpan 和 TimeZoneInfo 之間選擇
  • Sample: .NET Core WinForms Formatting Utility (C#) (範例:.NET Core WinForms 格式化公用程式 (C#))
  • Sample: .NET Core WinForms Formatting Utility (Visual Basic) (範例:.NET Core WinForms 格式化公用程式 (Visual Basic))