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
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.TicksPerDay、 TimeSpan.TicksPerHour、 TimeSpan.TicksPerMinute、 TimeSpan.TicksPerSecond或 TimeSpan.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))