Skip to content

Instantly share code, notes, and snippets.

@rschiefer
Last active September 3, 2019 14:04
Show Gist options
  • Save rschiefer/dbaac710197195042ca2e5291eb13cd9 to your computer and use it in GitHub Desktop.
Save rschiefer/dbaac710197195042ca2e5291eb13cd9 to your computer and use it in GitHub Desktop.
.NET Date/Time Basics
var datetimeCustom = new DateTime(2019,1,1);
Console.WriteLine("new DateTime(2019,1,1)");
Console.WriteLine(datetimeCustom);
Console.WriteLine("Kind = {0}", datetimeCustom.Kind);
//> new DateTime(2019,1,1)
//> 1/1/2019 12:00:00 AM
//> Kind = Unspecified
var datetimeOffsetNow = DateTimeOffset.Now;
Console.WriteLine("DateTimeOffset.Now");
Console.WriteLine(datetimeOffsetNow);
Console.WriteLine("Offset = {0}", datetimeOffsetNow.Offset);
Console.WriteLine("DateTime = {0}", datetimeOffsetNow.DateTime);
Console.WriteLine("LocalDateTime = {0}", datetimeOffsetNow.LocalDateTime);
Console.WriteLine("UtcDateTime = {0}", datetimeOffsetNow.UtcDateTime);
//> DateTimeOffset.Now
//> 9/3/2019 8:40:48 AM -05:00
//> Offset = -05:00:00
//> DateTime = 9/3/2019 8:40:48 AM
//> LocalDateTime = 9/3/2019 8:40:48 AM
//> UtcDateTime = 9/3/2019 1:40:48 PM
var datetimeOffsetUtcNow = DateTimeOffset.UtcNow;
Console.WriteLine("DateTimeOffset.UtcNow");
Console.WriteLine(datetimeOffsetNow);
Console.WriteLine("Offset = {0}", datetimeOffsetUtcNow.Offset);
Console.WriteLine("DateTime = {0}", datetimeOffsetUtcNow.DateTime);
Console.WriteLine("LocalDateTime = {0}", datetimeOffsetUtcNow.LocalDateTime);
Console.WriteLine("UtcDateTime = {0}", datetimeOffsetUtcNow.UtcDateTime);
//> DateTimeOffset.UtcNow
//> 9/3/2019 8:40:48 AM -05:00
//> Offset = 00:00:00
//> DateTime = 9/3/2019 1:40:48 PM
//> LocalDateTime = 9/3/2019 8:40:48 AM
//> UtcDateTime = 9/3/2019 1:40:48 PM
// DateTimeOffset: DST-aware (if timezones are loaded)
var datetimeOffsetLocal = new DateTimeOffset(new DateTime(2019,1,1));
Console.WriteLine("new DateTimeOffset(new DateTime(2019,1,1))");
Console.WriteLine(datetimeOffsetLocal);
Console.WriteLine("Offset = {0}", datetimeOffsetLocal.Offset);
Console.WriteLine("DateTime = {0}", datetimeOffsetLocal.DateTime);
Console.WriteLine("LocalDateTime = {0}", datetimeOffsetLocal.LocalDateTime);
Console.WriteLine("UtcDateTime = {0}", datetimeOffsetLocal.UtcDateTime);
//> new DateTimeOffset(new DateTime(2019,1,1))
//> 1/1/2019 12:00:00 AM -06:00
//> Offset = -06:00:00
//> DateTime = 1/1/2019 12:00:00 AM
//> LocalDateTime = 1/1/2019 12:00:00 AM
//> UtcDateTime = 1/1/2019 6:00:00 AM
var datetimeOffsetCustom = new DateTimeOffset(new DateTime(2019, 1, 1), TimeSpan.FromHours(-8));
Console.WriteLine("new DateTimeOffset(new DateTime(2019,1,1), TimeSpan.FromHours(-8))");
Console.WriteLine(datetimeOffsetCustom);
Console.WriteLine("Offset = {0}", datetimeOffsetCustom.Offset);
Console.WriteLine("DateTime = {0}", datetimeOffsetCustom.DateTime);
Console.WriteLine("LocalDateTime = {0}", datetimeOffsetCustom.LocalDateTime);
Console.WriteLine("UtcDateTime = {0}", datetimeOffsetCustom.UtcDateTime);
//> new DateTimeOffset(new DateTime(2019,1,1), TimeSpan.FromHours(-8))
//> 1/1/2019 12:00:00 AM -08:00
//> Offset = -08:00:00
//> DateTime = 1/1/2019 12:00:00 AM
//> LocalDateTime = 1/1/2019 2:00:00 AM
//> UtcDateTime = 1/1/2019 8:00:00 AM
var datetimeNow = DateTime.Now;
Console.WriteLine("DateTime.Now");
Console.WriteLine(datetimeNow);
Console.WriteLine("Kind = {0}", datetimeNow.Kind);
Console.WriteLine("");
var datetimeUtcNow = DateTime.UtcNow;
Console.WriteLine("DateTime.UtcNow");
Console.WriteLine(datetimeUtcNow);
Console.WriteLine("Kind = {0}", datetimeUtcNow.Kind);
Console.WriteLine("");
//> DateTime.Now
//> 9/3/2019 8:40:48 AM
//> Kind = Local
//> DateTime.UtcNow
//> 9/3/2019 1:40:48 PM
//> Kind = Utc
DateTimeOffset test = new DateTime(2019, 1, 1);
Console.WriteLine("DateTimeOffset test = new DateTime(2019, 1, 1);");
Console.WriteLine(test);
Console.WriteLine("Offset = {0}", test.Offset);
Console.WriteLine("DateTime = {0}", test.DateTime);
Console.WriteLine("LocalDateTime = {0}", test.LocalDateTime);
Console.WriteLine("UtcDateTime = {0}", test.UtcDateTime);
//> DateTimeOffset test = new DateTime(2019, 1, 1);
//> 1/1/2019 12:00:00 AM -06:00
//> Offset = -06:00:00
//> DateTime = 1/1/2019 12:00:00 AM
//> LocalDateTime = 1/1/2019 12:00:00 AM
//> UtcDateTime = 1/1/2019 6:00:00 AM
Console.WriteLine(new DateTimeOffset(new DateTime(2019, 11, 3, 0, 30, 0)));
Console.WriteLine(new DateTimeOffset(new DateTime(2019, 11, 3, 1, 30, 0)));
//> 11/3/2019 12:30:00 AM -05:00
//> 11/3/2019 1:30:00 AM -06:00
Console.WriteLine(new DateTimeOffset(new DateTime(2019, 3, 10, 0, 30, 0)));
Console.WriteLine(new DateTimeOffset(new DateTime(2019, 3, 10, 3, 30, 0)));
//> 3/10/2019 12:30:00 AM -06:00
//> 3/10/2019 3:30:00 AM -05:00
Console.WriteLine(TimeZoneInfo.Local);
Console.WriteLine(TimeZoneInfo.ConvertTime(new DateTimeOffset(new DateTime(2019, 1, 1), TimeSpan.FromHours(0)), TimeZoneInfo.Local));
Console.WriteLine(TimeZoneInfo.ConvertTime(new DateTimeOffset(new DateTime(2019, 6, 1), TimeSpan.FromHours(0)), TimeZoneInfo.Local));
//> 12/31/2018 6:00:00 PM -06:00
//> 5/31/2019 7:00:00 PM -05:00
var eastern = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
Console.WriteLine(TimeZoneInfo.ConvertTime(new DateTimeOffset(new DateTime(2019, 6, 1), TimeSpan.FromHours(0)), eastern));
//> 5/31/2019 8:00:00 PM -04:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment