
ISO 8601 is a general, international standard on how the complex representation of time stamps can be formulated in a general way - including the consideration of time formats, time zones and resolution.
Therefore, ISO 8601 is generally recommended for the exchange of time information, whether in databases, XML files or any other potential technology-neutral exchange format.
.NET does not have its own method for outputting ISO 8601, but it does have a standard-compliant option when formatting time objects: the o parameter.
To get a format like 2020-01-17T10:20:30.0000000Z you can this snippet:
1
2 DateTime dat = new DateTime(2020, 1, 17, 10, 20, 30, DateTimeKind.Utc);
3 Console.WriteLine("{0} ({1}) --> {0:o}", dat, dat.Kind);
My brain is unfortunately filled with a lot of nonsense, so that I keep forgetting that “o” is the appropriate format option. Therefore I wrote a little extension:
1 public static string ToISO8601(this DateTimeOffset dt)
2 {
3 return dt.ToString("o");
4 }
5 public static string ToISO8601(this DateTime dt)
6 {
7 return dt.ToString("o");
8 }
Finally you can just write
1Console.WriteLine(dt.ToISO8601);
Related articles

Jan 06, 2020 - 1 min read
Clone entity values with Entity Framework
Often you want to duplicate entities or their values in order to save an entity with a new ID. But what is the best way to do this?

Jan 05, 2020 - 3 min read
Expose OpenSearch Endpoint with an ASP.NET Core Controller Action
OpenSearch OpenSearch is a standard that has existed for about 15 years and is used by search engines and Browsers.

Dec 19, 2019 - 3 min read
Entity Framework 3 - Migrations
Install EF Core 3 Migration tools The tooling of the Entity Framework Core Migrations comes via NuGet (and dotnet tooling).
Let's Work Together
Looking for an experienced Platform Architect or Engineer for your next project? Whether it's cloud migration, platform modernization or building new solutions from scratch - I'm here to help you succeed.
