There is this SOAP web service that sends me datetime objects in the following format
2016-03-29T12:20:35.093-05:00
That is day 29 of March of year 2016. Hour: 12:20:35.093 (GMT-5).
I want to be able to create a DateTime
object, like this:
DateTime.Now
and get the string representation in the format described above and also the inverse operation, create a DateTime from a string like the one given above.
I've tried the following in order to create the date:
new DateTime(2016, 3, 29, 12, 20, 35, 093, DateTimeKind.Utc)
However, I can't not see how to specifie GMT-5 there...
I don't know how to convert a DateTime to the specified string format, either.
Using Nate's code I'm doing the following:
var d = new DateTimeOffset(2016, 3, 29, 12, 20, 35, 93, TimeSpan.FromHours(-3));
FormatIso8601(d)
However this call is returning: "2016-03-29T15:20:35Z" instead of :
"2016-03-29T12:20:35.093-03:00"
which is what I actually need.
I think this works:
d.ToString("yyyy-MM-ddTHH:mm:ss.fffzzz")