Azerty123 Azerty123 - 24 days ago 12
C# Question

New DateTimeOffset from string

I want to create a new

DateTimeOffset
with
offset = -5
from a string

I do :

string dt = "11082016";
DateTime date = DateTime.ParseExact(dt, "MMddyyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None);
DateTimeOffset dto = new DateTimeOffset(date, TimeSpan.FromHours(-5));


Is it possible to create directly a
DateTimeOffset
without passing by
DateTime
?

Answer

Is it possible to create directly a DateTimeOffset without passing by DateTime ?

No, that's not possible.

Every DateTimeOffset instance has to have it's DateTime part. You can't create a DateTimeOffset instance just with a UTC Offset value.

Of course it has some constructors that doesn't take DateTime as a parameter directly like;

  • DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, TimeSpan)
  • DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, TimeSpan)
  • DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, TimeSpan)
  • DateTimeOffset(Int64, TimeSpan)

But those Int32 and Int64 values are still generate a Datetime internally for current instance .DateTime property.

I want to create a new DateTimeOffset with offset = -5 from a string

If you could do that, you wouldn't need that string, don't you think?

Comments