Skip to content

Instantly share code, notes, and snippets.

@oleksabor
Last active December 28, 2020 17:59
Show Gist options
  • Save oleksabor/c9b5b5880a45abedf7ec64e2ec545503 to your computer and use it in GitHub Desktop.
Save oleksabor/c9b5b5880a45abedf7ec64e2ec545503 to your computer and use it in GitHub Desktop.
timezone on Unix can differ per year
using System;
using Newtonsoft.Json;
namespace jsonTimeZone
{
//https://stackoverflow.com/questions/65436081/date-deserialization-difference-between-kestrel-on-windows-and-kestrel-on-macos
class Program
{
static void Main(string[] args)
{
var settings = new JsonSerializerSettings()
{
DateTimeZoneHandling = DateTimeZoneHandling.Local,
};
for (int q = 1912; q < 2020; q += 10)
{
var content = string.Format(@"""{0}-01-01T21:00:00.000Z""", q);
var dob = JsonConvert.DeserializeObject<DateTime>(content, settings);
Console.WriteLine( $"dob: {dob.ToString("yyyy-MM-dd HH:mm:ss.fff")} - {dob.Kind}");
}
Console.WriteLine(TimeZoneInfo.Local);
}
}
}
// Ubuntu 20 output is:
// (UTC+02:00) Eastern European Standard Time
// dob: 1912-01-01 23:02:00.000 - Local
// dob: 1922-01-01 23:02:00.000 - Local
// dob: 1932-01-02 00:00:00.000 - Local
// dob: 1942-01-01 23:00:00.000 - Local
// dob: 1952-01-02 00:00:00.000 - Local
// dob: 1962-01-02 00:00:00.000 - Local
// dob: 1972-01-02 00:00:00.000 - Local
// dob: 1982-01-02 00:00:00.000 - Local
// dob: 1992-01-01 23:00:00.000 - Local
// dob: 2002-01-01 23:00:00.000 - Local
// dob: 2012-01-01 23:00:00.000 - Local
// Windows 10 output is:
//dob: 1912-01-01 23:00:00.000 - Local
//dob: 1922-01-01 23:00:00.000 - Local
//dob: 1932-01-01 23:00:00.000 - Local
//dob: 1942-01-01 23:00:00.000 - Local
//dob: 1952-01-01 23:00:00.000 - Local
//dob: 1962-01-01 23:00:00.000 - Local
//dob: 1972-01-01 23:00:00.000 - Local
//dob: 1982-01-01 23:00:00.000 - Local
//dob: 1992-01-01 23:00:00.000 - Local
//dob: 2002-01-01 23:00:00.000 - Local
//dob: 2012-01-01 23:00:00.000 - Local
//(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment