Noda Time
Show / Hide Table of Contents

Struct OffsetDateTime

A local date and time in a particular calendar system, combined with an offset from UTC. This is broadly similar to DateTimeOffset in the BCL.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Implements
IEquatable<OffsetDateTime>
IFormattable
IXmlSerializable
IAdditionOperators<OffsetDateTime, Duration, OffsetDateTime>
ISubtractionOperators<OffsetDateTime, Duration, OffsetDateTime>
IEqualityOperators<OffsetDateTime, OffsetDateTime, bool>
Inherited Members
object.Equals(object, object)
object.GetType()
object.ReferenceEquals(object, object)
Namespace: NodaTime
Assembly: NodaTime.dll
Syntax
[TypeConverter(typeof(OffsetDateTimeTypeConverter))]
public readonly struct OffsetDateTime : IEquatable<OffsetDateTime>, IFormattable, IXmlSerializable, IAdditionOperators<OffsetDateTime, Duration, OffsetDateTime>, ISubtractionOperators<OffsetDateTime, Duration, OffsetDateTime>, IEqualityOperators<OffsetDateTime, OffsetDateTime, bool>
Remarks

Equality is defined in a component-wise fashion: two values are the same if they represent equal date/time values (including being in the same calendar) and equal offsets from UTC. Ordering between offset date/time values has no natural definition; see OffsetDateTime.Comparer for built-in comparers.

A value of this type unambiguously represents both a local time and an instant on the timeline, but does not have a well-defined time zone. This means you cannot reliably know what the local time would be five minutes later, for example. While this doesn't sound terribly useful, it's very common in text representations.

The default value of this type is 0001-01-01T00:00:00Z (midnight on January 1st, 1 C.E. with a UTC offset of 0) in the ISO calendar.

Constructors

OffsetDateTime(LocalDateTime, Offset)

Constructs a new offset date/time with the given local date and time, and the given offset from UTC.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime(LocalDateTime localDateTime, Offset offset)
Parameters
Type Name Description
LocalDateTime localDateTime Local date and time to represent
Offset offset Offset from UTC
Sample snippet
using NodaTime;
using System;

LocalDateTime localDateTime = new LocalDateTime(1985, 10, 26, 1, 18);
Offset offset = Offset.FromHours(-5);
OffsetDateTime offsetDateTime = new OffsetDateTime(localDateTime, offset);

Console.WriteLine(offsetDateTime.LocalDateTime);
Console.WriteLine(offsetDateTime.Offset);

Output:

10/26/1985 01:18:00
-05

Properties

Calendar

Gets the calendar system associated with this offset date and time.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public CalendarSystem Calendar { get; }
Property Value
Type Description
CalendarSystem The calendar system associated with this offset date and time.

ClockHourOfHalfDay

Gets the hour of the half-day of this offset date and time, in the range 1 to 12 inclusive.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int ClockHourOfHalfDay { get; }
Property Value
Type Description
int The hour of the half-day of this offset date and time, in the range 1 to 12 inclusive.

Date

Gets the local date represented by this offset date and time.
Since 1.1.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public LocalDate Date { get; }
Property Value
Type Description
LocalDate The local date represented by this offset date and time.
Remarks
The returned LocalDate will have the same calendar system and return the same values for each of the date-based calendar properties (Year, MonthOfYear and so on), but will not have any offset information.

Day

Gets the day of this offset date and time within the month.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int Day { get; }
Property Value
Type Description
int The day of this offset date and time within the month.

DayOfWeek

Gets the week day of this offset date and time expressed as an IsoDayOfWeek value.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public IsoDayOfWeek DayOfWeek { get; }
Property Value
Type Description
IsoDayOfWeek The week day of this offset date and time expressed as an IsoDayOfWeek.

DayOfYear

Gets the day of this offset date and time within the year.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int DayOfYear { get; }
Property Value
Type Description
int The day of this offset date and time within the year.

Era

Gets the era of this offset date and time.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public Era Era { get; }
Property Value
Type Description
Era The era of this offset date and time.

Hour

Gets the hour of day of this offset date and time, in the range 0 to 23 inclusive.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int Hour { get; }
Property Value
Type Description
int The hour of day of this offset date and time, in the range 0 to 23 inclusive.

LocalDateTime

Returns the local date and time represented within this offset date and time.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public LocalDateTime LocalDateTime { get; }
Property Value
Type Description
LocalDateTime The local date and time represented within this offset date and time.

Millisecond

Gets the millisecond of this offset date and time within the second, in the range 0 to 999 inclusive.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int Millisecond { get; }
Property Value
Type Description
int The millisecond of this offset date and time within the second, in the range 0 to 999 inclusive.

Minute

Gets the minute of this offset date and time, in the range 0 to 59 inclusive.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int Minute { get; }
Property Value
Type Description
int The minute of this offset date and time, in the range 0 to 59 inclusive.

Month

Gets the month of this offset date and time within the year.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int Month { get; }
Property Value
Type Description
int The month of this offset date and time within the year.

NanosecondOfDay

Gets the nanosecond of this offset date and time within the day, in the range 0 to 86,399,999,999,999 inclusive.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public long NanosecondOfDay { get; }
Property Value
Type Description
long The nanosecond of this offset date and time within the day, in the range 0 to 86,399,999,999,999 inclusive.

NanosecondOfSecond

Gets the nanosecond of this offset date and time within the second, in the range 0 to 999,999,999 inclusive.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int NanosecondOfSecond { get; }
Property Value
Type Description
int The nanosecond of this offset date and time within the second, in the range 0 to 999,999,999 inclusive.

Offset

Gets the offset from UTC.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public Offset Offset { get; }
Property Value
Type Description
Offset The offset from UTC.

Second

Gets the second of this offset date and time within the minute, in the range 0 to 59 inclusive.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int Second { get; }
Property Value
Type Description
int The second of this offset date and time within the minute, in the range 0 to 59 inclusive.

TickOfDay

Gets the tick of this offset date and time within the day, in the range 0 to 863,999,999,999 inclusive.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public long TickOfDay { get; }
Property Value
Type Description
long The tick of this offset date and time within the day, in the range 0 to 863,999,999,999 inclusive.

TickOfSecond

Gets the tick of this offset date and time within the second, in the range 0 to 9,999,999 inclusive.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int TickOfSecond { get; }
Property Value
Type Description
int The tick of this offset date and time within the second, in the range 0 to 9,999,999 inclusive.

TimeOfDay

Gets the time portion of this offset date and time.
Since 1.1.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public LocalTime TimeOfDay { get; }
Property Value
Type Description
LocalTime The time portion of this offset date and time.
Remarks
The returned LocalTime will return the same values for each of the time-based properties (Hour, Minute and so on), but will not have any offset information.

Year

Gets the year of this offset date and time.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int Year { get; }
Property Value
Type Description
int The year of this offset date and time.
Remarks
This returns the "absolute year", so, for the ISO calendar, a value of 0 means 1 BC, for example.

YearOfEra

Gets the year of this offset date and time within the era.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public int YearOfEra { get; }
Property Value
Type Description
int The year of this offset date and time within the era.

Methods

Add(OffsetDateTime, Duration)

Adds a duration to an offset date and time.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static OffsetDateTime Add(OffsetDateTime offsetDateTime, Duration duration)
Parameters
Type Name Description
OffsetDateTime offsetDateTime The value to add the duration to.
Duration duration The duration to add
Returns
Type Description
OffsetDateTime A new value with the time advanced by the given duration, in the same calendar system and with the same offset.
Remarks
This is an alternative way of calling operator +(OffsetDateTime, Duration).

AddSchema(XmlSchemaSet)

Adds the XML schema type describing the structure of the OffsetDateTime XML serialization to the given xmlSchemaSet.
Since 3.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static XmlQualifiedName AddSchema(XmlSchemaSet xmlSchemaSet)
Parameters
Type Name Description
XmlSchemaSet xmlSchemaSet The XML schema set provided by XmlSchemaExporter.
Returns
Type Description
XmlQualifiedName The qualified name of the schema type that was added to the xmlSchemaSet.

Deconstruct(out LocalDate, out LocalTime, out Offset)

Deconstruct this OffsetDateTime into its components.
Since 2.3.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public void Deconstruct(out LocalDate localDate, out LocalTime localTime, out Offset offset)
Parameters
Type Name Description
LocalDate localDate The LocalDate component.
LocalTime localTime The LocalTime component.
Offset offset The Offset component.

Deconstruct(out LocalDateTime, out Offset)

Deconstruct this OffsetDateTime into its components.
Since 2.3.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public void Deconstruct(out LocalDateTime localDateTime, out Offset offset)
Parameters
Type Name Description
LocalDateTime localDateTime The LocalDateTime component.
Offset offset The Offset component.

Equals(OffsetDateTime)

Compares two OffsetDateTime values for equality. See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public bool Equals(OffsetDateTime other)
Parameters
Type Name Description
OffsetDateTime other The value to compare this offset date/time with.
Returns
Type Description
bool True if the given value is another offset date/time equal to this one; false otherwise.

Equals(object?)

Compares two OffsetDateTime values for equality. See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public override bool Equals(object? obj)
Parameters
Type Name Description
object obj The object to compare this date with.
Returns
Type Description
bool True if the given value is another offset date/time equal to this one; false otherwise.
Overrides
ValueType.Equals(object)

FromDateTimeOffset(DateTimeOffset)

Builds an OffsetDateTime from a BCL DateTimeOffset by converting the DateTime part to a LocalDateTime, and the offset part to an Offset.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static OffsetDateTime FromDateTimeOffset(DateTimeOffset dateTimeOffset)
Parameters
Type Name Description
DateTimeOffset dateTimeOffset DateTimeOffset to convert
Returns
Type Description
OffsetDateTime The converted offset date and time

GetHashCode()

Returns a hash code for this offset date and time. See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public override int GetHashCode()
Returns
Type Description
int A hash code for this offset date and time.
Overrides
ValueType.GetHashCode()

InFixedZone()

Returns this value as a ZonedDateTime.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public ZonedDateTime InFixedZone()
Returns
Type Description
ZonedDateTime A zoned date/time with the same local time and a fixed time zone using the offset from this value.
Remarks

This method returns a ZonedDateTime with the same local date and time as this value, using a fixed time zone with the same offset as the offset for this value.

Note that because the resulting ZonedDateTime has a fixed time zone, it is generally not useful to use this result for arithmetic operations, as the zone will not adjust to account for daylight savings.

InZone(DateTimeZone)

Returns this value in ths specified time zone. This method does not expect the offset in the zone to be the same as for the current value; it simply converts this value into an Instant and finds the ZonedDateTime for that instant in the specified zone.
Since 2.3.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public ZonedDateTime InZone(DateTimeZone zone)
Parameters
Type Name Description
DateTimeZone zone The time zone of the new value.
Returns
Type Description
ZonedDateTime The instant represented by this value, in the specified time zone.

Minus(Duration)

Returns the result of subtracting a duration from this offset date and time, for a fluent alternative to operator -(OffsetDateTime, Duration)
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime Minus(Duration duration)
Parameters
Type Name Description
Duration duration The duration to subtract
Returns
Type Description
OffsetDateTime A new OffsetDateTime representing the result of the subtraction.

Minus(OffsetDateTime)

Returns the result of subtracting another offset date and time from this one, resulting in the elapsed duration between the two instants represented in the values.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public Duration Minus(OffsetDateTime other)
Parameters
Type Name Description
OffsetDateTime other The offset date and time to subtract from this one.
Returns
Type Description
Duration The elapsed duration from other to this value.
Remarks
This is an alternative way of calling operator -(OffsetDateTime, OffsetDateTime).

Plus(Duration)

Returns the result of adding a duration to this offset date and time.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime Plus(Duration duration)
Parameters
Type Name Description
Duration duration The duration to add
Returns
Type Description
OffsetDateTime A new OffsetDateTime representing the result of the addition.
Remarks
This is an alternative way of calling operator +(OffsetDateTime, Duration).

PlusHours(int)

Returns the result of adding a increment of hours to this offset date and time
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime PlusHours(int hours)
Parameters
Type Name Description
int hours The number of hours to add
Returns
Type Description
OffsetDateTime A new OffsetDateTime representing the result of the addition.

PlusMilliseconds(long)

Returns the result of adding an increment of milliseconds to this offset date and time
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime PlusMilliseconds(long milliseconds)
Parameters
Type Name Description
long milliseconds The number of milliseconds to add
Returns
Type Description
OffsetDateTime A new OffsetDateTime representing the result of the addition.

PlusMinutes(int)

Returns the result of adding an increment of minutes to this offset date and time
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime PlusMinutes(int minutes)
Parameters
Type Name Description
int minutes The number of minutes to add
Returns
Type Description
OffsetDateTime A new OffsetDateTime representing the result of the addition.

PlusNanoseconds(long)

Returns the result of adding an increment of nanoseconds to this offset date and time
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime PlusNanoseconds(long nanoseconds)
Parameters
Type Name Description
long nanoseconds The number of nanoseconds to add
Returns
Type Description
OffsetDateTime A new OffsetDateTime representing the result of the addition.

PlusSeconds(long)

Returns the result of adding an increment of seconds to this offset date and time
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime PlusSeconds(long seconds)
Parameters
Type Name Description
long seconds The number of seconds to add
Returns
Type Description
OffsetDateTime A new OffsetDateTime representing the result of the addition.

PlusTicks(long)

Returns the result of adding an increment of ticks to this offset date and time
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime PlusTicks(long ticks)
Parameters
Type Name Description
long ticks The number of ticks to add
Returns
Type Description
OffsetDateTime A new OffsetDateTime representing the result of the addition.

Subtract(OffsetDateTime, Duration)

Subtracts a duration from an offset date and time.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static OffsetDateTime Subtract(OffsetDateTime offsetDateTime, Duration duration)
Parameters
Type Name Description
OffsetDateTime offsetDateTime The value to subtract the duration from.
Duration duration The duration to subtract.
Returns
Type Description
OffsetDateTime A new value with the time "rewound" by the given duration, in the same calendar system and with the same offset.
Remarks
This is an alternative way of calling operator -(OffsetDateTime, Duration).

Subtract(OffsetDateTime, OffsetDateTime)

Subtracts one offset date and time from another, returning an elapsed duration.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static Duration Subtract(OffsetDateTime end, OffsetDateTime start)
Parameters
Type Name Description
OffsetDateTime end The offset date and time value to subtract from; if this is later than start then the result will be positive.
OffsetDateTime start The offset date and time to subtract from end.
Returns
Type Description
Duration The elapsed duration from start to end.
Remarks
This is an alternative way of calling operator -(OffsetDateTime, OffsetDateTime).

ToDateTimeOffset()

Returns the BCL DateTimeOffset corresponding to this offset date and time.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public DateTimeOffset ToDateTimeOffset()
Returns
Type Description
DateTimeOffset A DateTimeOffset with the same local date/time and offset as this. The DateTime part of the result always has a "kind" of Unspecified.
Remarks

If the date and time is not on a tick boundary (the unit of granularity of DateTime) the value will be truncated towards the start of time.

If the offset has a non-zero second component, this is truncated as DateTimeOffset has an offset granularity of minutes.

DateTimeOffset uses the Gregorian calendar by definition, so the value is implicitly converted to the Gregorian calendar first. The result will be the same instant in time (potentially truncated as described above), but the values returned by the Year/Month/Day properties of the DateTimeOffset may not match the Year/Month/Day properties of this value.

Exceptions
Type Condition
InvalidOperationException The date/time is outside the range of DateTimeOffset, or the offset is outside the range of +/-14 hours (the range supported by DateTimeOffset).

ToInstant()

Converts this offset date and time to an instant in time by subtracting the offset from the local date and time.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public Instant ToInstant()
Returns
Type Description
Instant The instant represented by this offset date and time

ToOffsetDate()

Constructs a new OffsetDate from the date and offset of this value, but omitting the time-of-day.
Since 2.3.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDate ToOffsetDate()
Returns
Type Description
OffsetDate A value representing the date and offset aspects of this value.

ToOffsetTime()

Constructs a new OffsetTime from the time and offset of this value, but omitting the date.
Since 2.3.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetTime ToOffsetTime()
Returns
Type Description
OffsetTime A value representing the time and offset aspects of this value.

ToString()

Returns a string that represents this instance.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public override string ToString()
Returns
Type Description
string The value of the current instance in the default format pattern ("G"), using the current thread's culture to obtain a format provider.
Overrides
ValueType.ToString()

ToString(string?, IFormatProvider?)

Formats the value of the current instance using the specified pattern.
Since 1.2.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public string ToString(string? patternText, IFormatProvider? formatProvider)
Parameters
Type Name Description
string patternText The string specifying the pattern to use, or null to use the default format pattern ("G").
IFormatProvider formatProvider The IFormatProvider to use when formatting the value, or null to use the current thread's culture to obtain a format provider.
Returns
Type Description
string A string containing the value of the current instance in the specified format.

With(Func<LocalDate, LocalDate>)

Returns this offset date/time, with the given date adjuster applied to it, maintaining the existing time of day and offset.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime With(Func<LocalDate, LocalDate> adjuster)
Parameters
Type Name Description
Func<LocalDate, LocalDate> adjuster The adjuster to apply.
Returns
Type Description
OffsetDateTime The adjusted offset date/time.
Remarks
If the adjuster attempts to construct an invalid date (such as by trying to set a day-of-month of 30 in February), any exception thrown by that construction attempt will be propagated through this method.
Sample snippet
using NodaTime;
using System;

LocalDateTime localDateTime = new LocalDateTime(1985, 10, 26, 1, 18);
Offset offset = Offset.FromHours(-5);
OffsetDateTime original = new OffsetDateTime(localDateTime, offset);
var dateAdjuster = DateAdjusters.AddPeriod(Period.FromYears(30));
OffsetDateTime updated = original.With(dateAdjuster);

Console.WriteLine(updated.LocalDateTime);
Console.WriteLine(updated.Offset);

Output:

10/26/2015 01:18:00
-05

With(Func<LocalTime, LocalTime>)

Returns this date/time, with the given time adjuster applied to it, maintaining the existing date and offset.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime With(Func<LocalTime, LocalTime> adjuster)
Parameters
Type Name Description
Func<LocalTime, LocalTime> adjuster The adjuster to apply.
Returns
Type Description
OffsetDateTime The adjusted offset date/time.
Remarks
If the adjuster attempts to construct an invalid time, any exception thrown by that construction attempt will be propagated through this method.
Sample snippet
using NodaTime;
using System;

LocalDateTime localDateTime = new LocalDateTime(1985, 10, 26, 1, 18);
Offset offset = Offset.FromHours(-5);
OffsetDateTime original = new OffsetDateTime(localDateTime, offset);
OffsetDateTime updated = original.With(TimeAdjusters.TruncateToHour);

Console.WriteLine(updated.LocalDateTime);
Console.WriteLine(updated.Offset);

Output:

10/26/1985 01:00:00
-05

WithCalendar(CalendarSystem)

Creates a new OffsetDateTime representing the same physical date, time and offset, but in a different calendar. The returned OffsetDateTime is likely to have different date field values to this one. For example, January 1st 1970 in the Gregorian calendar was December 19th 1969 in the Julian calendar.
Since 1.2.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime WithCalendar(CalendarSystem calendar)
Parameters
Type Name Description
CalendarSystem calendar The calendar system to convert this offset date and time to.
Returns
Type Description
OffsetDateTime The converted OffsetDateTime.
Sample snippet
using NodaTime;
using System;

LocalDateTime localDateTime = new LocalDateTime(1985, 10, 26, 1, 18, CalendarSystem.Iso);
Offset offset = Offset.FromHours(-5);
OffsetDateTime original = new OffsetDateTime(localDateTime, offset);
OffsetDateTime updated = original.WithCalendar(CalendarSystem.Julian);

Console.WriteLine(updated.LocalDateTime.ToString("r", null));

Console.WriteLine(updated.Offset);

Output:

1985-10-13T01:18:00.000000000 (Julian)
-05

WithOffset(Offset)

Creates a new OffsetDateTime representing the instant in time in the same calendar, but with a different offset. The local date and time is adjusted accordingly.
Since 1.3.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public OffsetDateTime WithOffset(Offset offset)
Parameters
Type Name Description
Offset offset The new offset to use.
Returns
Type Description
OffsetDateTime The converted OffsetDateTime.
Sample snippet
using NodaTime;
using System;

LocalDateTime localDateTime = new LocalDateTime(1985, 10, 26, 1, 18);
Offset offset = Offset.FromHours(-3);
OffsetDateTime original = new OffsetDateTime(localDateTime, offset);
OffsetDateTime updated = original.WithOffset(Offset.FromHours(-2));

Console.WriteLine(updated.LocalDateTime);
Console.WriteLine(updated.Offset);

Output:

10/26/1985 02:18:00
-02

Operators

operator +(OffsetDateTime, Duration)

Returns a new OffsetDateTime with the time advanced by the given duration.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static OffsetDateTime operator +(OffsetDateTime offsetDateTime, Duration duration)
Parameters
Type Name Description
OffsetDateTime offsetDateTime The OffsetDateTime to add the duration to.
Duration duration The duration to add.
Returns
Type Description
OffsetDateTime A new value with the time advanced by the given duration, in the same calendar system and with the same offset.
Remarks
The returned value retains the calendar system and offset of the offsetDateTime.

operator ==(OffsetDateTime, OffsetDateTime)

Implements the operator == (equality). See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static bool operator ==(OffsetDateTime left, OffsetDateTime right)
Parameters
Type Name Description
OffsetDateTime left The left hand side of the operator.
OffsetDateTime right The right hand side of the operator.
Returns
Type Description
bool true if values are equal to each other, otherwise false.

operator !=(OffsetDateTime, OffsetDateTime)

Implements the operator != (inequality). See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static bool operator !=(OffsetDateTime left, OffsetDateTime right)
Parameters
Type Name Description
OffsetDateTime left The left hand side of the operator.
OffsetDateTime right The right hand side of the operator.
Returns
Type Description
bool true if values are not equal to each other, otherwise false.

operator -(OffsetDateTime, Duration)

Returns a new OffsetDateTime with the duration subtracted.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static OffsetDateTime operator -(OffsetDateTime offsetDateTime, Duration duration)
Parameters
Type Name Description
OffsetDateTime offsetDateTime The value to subtract the duration from.
Duration duration The duration to subtract.
Returns
Type Description
OffsetDateTime A new value with the time "rewound" by the given duration, in the same calendar system and with the same offset.
Remarks
The returned value retains the calendar system and offset of the offsetDateTime.

operator -(OffsetDateTime, OffsetDateTime)

Subtracts one OffsetDateTime from another, resulting in the elapsed time between the two values.
Since 2.0.x
Availability net6.0, net8.0, netstandard2.0
Declaration
public static Duration operator -(OffsetDateTime end, OffsetDateTime start)
Parameters
Type Name Description
OffsetDateTime end The offset date and time value to subtract from; if this is later than start then the result will be positive.
OffsetDateTime start The offset date and time to subtract from end.
Returns
Type Description
Duration The elapsed duration from start to end.
Remarks
This is equivalent to end.ToInstant() - start.ToInstant(); in particular:
  • The two values can use different calendar systems
  • The two values can have different UTC offsets

Explicit Interface Implementations

IXmlSerializable.GetSchema()

This method is reserved and should not be used. When implementing the IXmlSerializable interface, you should return null (Nothing in Visual Basic) from this method, and instead, if specifying a custom schema is required, apply the XmlSchemaProviderAttribute to the class.
Since 3.2.x
Availability net6.0, net8.0, netstandard2.0
Declaration
XmlSchema IXmlSerializable.GetSchema()
Returns
Type Description
XmlSchema An XmlSchema that describes the XML representation of the object that is produced by the WriteXml(XmlWriter) method and consumed by the ReadXml(XmlReader) method.

IXmlSerializable.ReadXml(XmlReader)

Generates an object from its XML representation.
Since 1.2.x
Availability net6.0, net8.0, netstandard2.0
Declaration
void IXmlSerializable.ReadXml(XmlReader reader)
Parameters
Type Name Description
XmlReader reader The XmlReader stream from which the object is deserialized.

IXmlSerializable.WriteXml(XmlWriter)

Converts an object into its XML representation.
Since 1.2.x
Availability net6.0, net8.0, netstandard2.0
Declaration
void IXmlSerializable.WriteXml(XmlWriter writer)
Parameters
Type Name Description
XmlWriter writer The XmlWriter stream to which the object is serialized.

Implements

IEquatable<T>
IFormattable
IXmlSerializable
IAdditionOperators<TSelf, TOther, TResult>
ISubtractionOperators<TSelf, TOther, TResult>
IEqualityOperators<TSelf, TOther, TResult>
In this article
Back to top Generated by DocFX