DateTimeOffset Structure
 

Represents a point in time, typically expressed as a date and time of day, relative to Coordinated Universal Time (UTC).

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

Syntax
[SerializableAttribute]
public struct DateTimeOffset : IComparable, IFormattable, ISerializable, 
	IDeserializationCallback, IComparable<DateTimeOffset>, IEquatable<DateTimeOffset>
[SerializableAttribute]
public value struct DateTimeOffset : IComparable, IFormattable, 
	ISerializable, IDeserializationCallback, IComparable<DateTimeOffset>, 
	IEquatable<DateTimeOffset>
[<Sealed>]
[<SerializableAttribute>]
type DateTimeOffset = 
    struct
        interface IComparable
        interface IFormattable
        interface ISerializable
        interface IDeserializationCallback
        interface IComparable<DateTimeOffset>
        interface IEquatable<DateTimeOffset>
    end
<SerializableAttribute>
Public Structure DateTimeOffset
	Implements IComparable, IFormattable, ISerializable, IDeserializationCallback,
	IComparable(Of DateTimeOffset), IEquatable(Of DateTimeOffset)
Constructors
NameDescription
System_CAPS_pubmethod DateTimeOffset

Initializes a new instance of the DateTimeOffset structure using the specified DateTime value.

System_CAPS_pubmethod DateTimeOffset

Initializes a new instance of the DateTimeOffset structure using the specified DateTime value and offset.

System_CAPS_pubmethod DateTimeOffset

Initializes a new instance of the DateTimeOffset structure using the specified year, month, day, hour, minute, second, millisecond, and offset of a specified calendar.

System_CAPS_pubmethod DateTimeOffset

Initializes a new instance of the DateTimeOffset structure using the specified year, month, day, hour, minute, second, millisecond, and offset.

System_CAPS_pubmethod DateTimeOffset

Initializes a new instance of the DateTimeOffset structure using the specified year, month, day, hour, minute, second, and offset.

System_CAPS_pubmethod DateTimeOffset

Initializes a new instance of the DateTimeOffset structure using the specified number of ticks and offset.

Properties
NameDescription
System_CAPS_pubproperty

Gets a DateTime value that represents the date component of the current DateTimeOffset object.

System_CAPS_pubproperty

Gets a DateTime value that represents the date and time of the current DateTimeOffset object.

System_CAPS_pubproperty

Gets the day of the month represented by the current DateTimeOffset object.

System_CAPS_pubproperty

Gets the day of the week represented by the current DateTimeOffset object.

System_CAPS_pubproperty

Gets the day of the year represented by the current DateTimeOffset object.

System_CAPS_pubproperty

Gets the hour component of the time represented by the current DateTimeOffset object.

System_CAPS_pubproperty

Gets a DateTime value that represents the local date and time of the current DateTimeOffset object.

System_CAPS_pubproperty

Gets the millisecond component of the time represented by the current DateTimeOffset object.

System_CAPS_pubproperty

Gets the minute component of the time represented by the current DateTimeOffset object.

System_CAPS_pubproperty

Gets the month component of the date represented by the current DateTimeOffset object.

System_CAPS_pubproperty System_CAPS_static

Gets a DateTimeOffset object that is set to the current date and time on the current computer, with the offset set to the local time's offset from Coordinated Universal Time (UTC).

System_CAPS_pubproperty

Gets the time's offset from Coordinated Universal Time (UTC).

System_CAPS_pubproperty

Gets the second component of the clock time represented by the current DateTimeOffset object.

System_CAPS_pubproperty

Gets the number of ticks that represents the date and time of the current DateTimeOffset object in clock time.

System_CAPS_pubproperty

Gets the time of day for the current DateTimeOffset object.

System_CAPS_pubproperty

Gets a DateTime value that represents the Coordinated Universal Time (UTC) date and time of the current DateTimeOffset object.

System_CAPS_pubproperty System_CAPS_static

Gets a DateTimeOffset object whose date and time are set to the current Coordinated Universal Time (UTC) date and time and whose offset is TimeSpanZero.

System_CAPS_pubproperty

Gets the number of ticks that represents the date and time of the current DateTimeOffset object in Coordinated Universal Time (UTC).

System_CAPS_pubproperty

Gets the year component of the date represented by the current DateTimeOffset object.

Methods
NameDescription
System_CAPS_pubmethod Add

Returns a new DateTimeOffset object that adds a specified time interval to the value of this instance.

System_CAPS_pubmethod AddDays

Returns a new DateTimeOffset object that adds a specified number of whole and fractional days to the value of this instance.

System_CAPS_pubmethod AddHours

Returns a new DateTimeOffset object that adds a specified number of whole and fractional hours to the value of this instance.

System_CAPS_pubmethod AddMilliseconds

Returns a new DateTimeOffset object that adds a specified number of milliseconds to the value of this instance.

System_CAPS_pubmethod AddMinutes

Returns a new DateTimeOffset object that adds a specified number of whole and fractional minutes to the value of this instance.

System_CAPS_pubmethod AddMonths

Returns a new DateTimeOffset object that adds a specified number of months to the value of this instance.

System_CAPS_pubmethod AddSeconds

Returns a new DateTimeOffset object that adds a specified number of whole and fractional seconds to the value of this instance.

System_CAPS_pubmethod AddTicks

Returns a new DateTimeOffset object that adds a specified number of ticks to the value of this instance.

System_CAPS_pubmethod AddYears

Returns a new DateTimeOffset object that adds a specified number of years to the value of this instance.

System_CAPS_pubmethod System_CAPS_static Compare

Compares two DateTimeOffset objects and indicates whether the first is earlier than the second, equal to the second, or later than the second.

System_CAPS_pubmethod CompareTo

Compares the current DateTimeOffset object to a specified DateTimeOffset object and indicates whether the current object is earlier than, the same as, or later than the second DateTimeOffset object.

System_CAPS_pubmethod Equals

Determines whether the current DateTimeOffset object represents the same point in time as a specified DateTimeOffset object.

System_CAPS_pubmethod System_CAPS_static Equals

Determines whether two specified DateTimeOffset objects represent the same point in time.

System_CAPS_pubmethod Equals

Determines whether a DateTimeOffset object represents the same point in time as a specified object.(Overrides ValueTypeEquals.)

System_CAPS_pubmethod EqualsExact

Determines whether the current DateTimeOffset object represents the same time and has the same offset as a specified DateTimeOffset object.

System_CAPS_pubmethod System_CAPS_static FromFileTime

Converts the specified Windows file time to an equivalent local time.

System_CAPS_pubmethod System_CAPS_static FromUnixTimeMilliseconds

Converts a Unix time expressed as the number of milliseconds that have elapsed since 1970-01-01T00:00:00Z to a DateTimeOffset value.

System_CAPS_pubmethod System_CAPS_static FromUnixTimeSeconds

Converts a Unix time expressed as the number of seconds that have elapsed since 1970-01-01T00:00:00Z to a DateTimeOffset value.

System_CAPS_pubmethod GetHashCode

Returns the hash code for the current DateTimeOffset object.(Overrides ValueTypeGetHashCode.)

System_CAPS_pubmethod GetType

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethod System_CAPS_static Parse

Converts the specified string representation of a date, time, and offset to its DateTimeOffset equivalent.

System_CAPS_pubmethod System_CAPS_static Parse

Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified culture-specific format information.

System_CAPS_pubmethod System_CAPS_static Parse

Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified culture-specific format information and formatting style.

System_CAPS_pubmethod System_CAPS_static ParseExact

Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format and culture-specific format information. The format of the string representation must match the specified format exactly.

System_CAPS_pubmethod System_CAPS_static ParseExact

Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. The format of the string representation must match the specified format exactly.

System_CAPS_pubmethod System_CAPS_static ParseExact

Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. The format of the string representation must match one of the specified formats exactly.

System_CAPS_pubmethod Subtract

Subtracts a DateTimeOffset value that represents a specific date and time from the current DateTimeOffset object.

System_CAPS_pubmethod Subtract

Subtracts a specified time interval from the current DateTimeOffset object.

System_CAPS_pubmethod ToFileTime

Converts the value of the current DateTimeOffset object to a Windows file time.

System_CAPS_pubmethod ToLocalTime

Converts the current DateTimeOffset object to a DateTimeOffset object that represents the local time.

System_CAPS_pubmethod ToOffset

Converts the value of the current DateTimeOffset object to the date and time specified by an offset value.

System_CAPS_pubmethod ToString

Converts the value of the current DateTimeOffset object to its equivalent string representation.(Overrides ValueTypeToString.)

System_CAPS_pubmethod ToString

Converts the value of the current DateTimeOffset object to its equivalent string representation using the specified culture-specific formatting information.

System_CAPS_pubmethod ToString

Converts the value of the current DateTimeOffset object to its equivalent string representation using the specified format.

System_CAPS_pubmethod ToString

Converts the value of the current DateTimeOffset object to its equivalent string representation using the specified format and culture-specific format information.

System_CAPS_pubmethod ToUniversalTime

Converts the current DateTimeOffset object to a DateTimeOffset value that represents the Coordinated Universal Time (UTC).

System_CAPS_pubmethod ToUnixTimeMilliseconds

Returns the number of milliseconds that have elapsed since 1970-01-01T00:00:00.000Z.

System_CAPS_pubmethod ToUnixTimeSeconds

Returns the number of seconds that have elapsed since 1970-01-01T00:00:00Z.

System_CAPS_pubmethod System_CAPS_static TryParse

Tries to converts a specified string representation of a date and time to its DateTimeOffset equivalent, and returns a value that indicates whether the conversion succeeded.

System_CAPS_pubmethod System_CAPS_static TryParse

Tries to convert a specified string representation of a date and time to its DateTimeOffset equivalent, and returns a value that indicates whether the conversion succeeded.

System_CAPS_pubmethod System_CAPS_static TryParseExact

Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. The format of the string representation must match the specified format exactly.

System_CAPS_pubmethod System_CAPS_static TryParseExact

Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified array of formats, culture-specific format information, and style. The format of the string representation must match one of the specified formats exactly.

Fields
NameDescription
System_CAPS_pubfield System_CAPS_static MaxValue

Represents the greatest possible value of DateTimeOffset. This field is read-only.

System_CAPS_pubfield System_CAPS_static MinValue

Represents the earliest possible DateTimeOffset value. This field is read-only.

Operators
NameDescription
System_CAPS_puboperator System_CAPS_static Addition

Adds a specified time interval to a DateTimeOffset object that has a specified date and time, and yields a DateTimeOffset object that has new a date and time.

System_CAPS_puboperator System_CAPS_static Equality

Determines whether two specified DateTimeOffset objects represent the same point in time.

System_CAPS_puboperator System_CAPS_static GreaterThan

Determines whether one specified DateTimeOffset object is greater than (or later than) a second specified DateTimeOffset object.

System_CAPS_puboperator System_CAPS_static GreaterThanOrEqual

Determines whether one specified DateTimeOffset object is greater than or equal to a second specified DateTimeOffset object.

System_CAPS_puboperator System_CAPS_static

Defines an implicit conversion of a DateTime object to a DateTimeOffset object.

System_CAPS_puboperator System_CAPS_static Inequality

Determines whether two specified DateTimeOffset objects refer to different points in time.

System_CAPS_puboperator System_CAPS_static LessThan

Determines whether one specified DateTimeOffset object is less than a second specified DateTimeOffset object.

System_CAPS_puboperator System_CAPS_static LessThanOrEqual

Determines whether one specified DateTimeOffset object is less than a second specified DateTimeOffset object.

System_CAPS_puboperator System_CAPS_static Subtraction

Subtracts one DateTimeOffset object from another and yields a time interval.

System_CAPS_puboperator System_CAPS_static Subtraction

Subtracts a specified time interval from a specified date and time, and yields a new date and time.

Explicit Interface Implementations
NameDescription
System_CAPS_pubinterface System_CAPS_privmethod IComparableCompareTo

This API supports the product infrastructure and is not intended to be used directly from your code. Compares the value of the current DateTimeOffset object with another object of the same type.

System_CAPS_pubinterface System_CAPS_privmethod IDeserializationCallbackOnDeserialization

This API supports the product infrastructure and is not intended to be used directly from your code. Runs when the deserialization of an object has been completed.

System_CAPS_pubinterface System_CAPS_privmethod ISerializableGetObjectData

This API supports the product infrastructure and is not intended to be used directly from your code. Populates a SerializationInfo object with the data required to serialize the current DateTimeOffset object.

Remarks

The DateTimeOffset structure includes a DateTime value, together with an property that defines the difference between the current DateTimeOffset instance's date and time and Coordinated Universal Time (UTC). Because it exactly defines a date and time relative to UTC, the DateTimeOffset structure does not include a Kind member, as the DateTime structure does. It represents dates and times with values whose UTC ranges from 12:00:00 midnight, January 1, 0001 Anno Domini (Common Era), to 11:59:59 P.M., December 31, 9999 A.D. (C.E.).

The time component of a DateTimeOffset value is measured in 100-nanosecond units called ticks, and a particular date is the number of ticks since 12:00 midnight, January 1, 0001 A.D. (C.E.) in the GregorianCalendar calendar. A DateTimeOffset value is always expressed in the context of an explicit or default calendar. Ticks that are attributable to leap seconds are not included in the total number of ticks.

System_CAPS_noteNote

   If you are working with a ticks value that you want to convert to some other time interval, such as minutes or seconds, you should use the TimeSpanTicksPerDay, TimeSpanTicksPerHour, TimeSpanTicksPerMinute, TimeSpanTicksPerSecond, or TimeSpanTicksPerMillisecond constant to perform the conversion. For example, to add the number of seconds represented by a specified number of ticks to the component of a DateTimeOffset value, you can use the expression dateValue.Second + nTicks/Timespan.TicksPerSecond.

Although a DateTimeOffset value includes an offset, it is not a fully time zone-aware data structure. While an offset from UTC is one characteristic of a time zone, it does not unambiguously identify a time zone. Not only do multiple time zones share the same offset from UTC, but the offset of a single time zone changes if it observes daylight saving time. This means that, as soon as a DateTimeOffset value is disassociated from its time zone, it can no longer be unambiguously linked back to its original time zone.

Because DateTimeOffset is a structure, a DateTimeOffset object that has been declared but not otherwise initialized contains the default values for each of its member fields. This means that its property is set to DateTimeOffsetMinValue and its property is set to TimeSpanZero.

You can create a new DateTimeOffset value by calling any of the overloads of its constructor, which are similar to the overloaded constructors for the DateTime structure. You can also create a new DateTimeOffset value by assigning it a DateTime value. This is an implicit conversion; it does not require a casting operator (in C#) or call to a conversion method (in Visual Basic). You can also initialize a DateTimeOffset value from the string representation of a date and time by calling a number of static string parsing methods, which include Parse, ParseExact, TryParse, and TryParseExact.

The members of the DateTimeOffset structure provide functionality in the following areas:

  • Date and time arithmetic.

    You can add or subtract either dates or time intervals from a particular DateTimeOffset value. Arithmetic operations with DateTimeOffset values, unlike those with DateTime values, adjust for differences in time offsets when returning a result. For example, the following code uses DateTime variables to subtract the current local time from the current UTC time. The code then uses DateTimeOffset variables to perform the same operation. The subtraction with DateTime values returns the local time zone's difference from UTC, while the subtraction with DateTimeOffset values returns TimeSpanZero.

    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                        
       }
    }
    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
  • Type conversion operations.

    You can convert DateTimeOffset values to values and vice versa.

  • Time manipulation and extraction operations.

    You can extract either the date or the time of a DateTimeOffset value. You can also retrieve the value of a particular DateTimeOffset component, such as its year or its month.

  • Date and time conversion.

    You can convert any DateTimeOffset value to another DateTimeOffset value that represents the same point in time in another time zone. However, a time zone's adjustment rules are applied only in the case of the ToLocalTime method, which converts a DateTimeOffset value to the date and time in the local system zone.

  • Date and time comparison.

    You can determine whether any particular DateTimeOffset value is earlier than, the same as, or later than another DateTimeOffset value. Before the comparison is performed, all values are converted to UTC.

Version Information
Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top