Skip to content

Instantly share code, notes, and snippets.

@i3arnon
Last active October 4, 2015 21:58
Show Gist options
  • Save i3arnon/201ec3e574a4dd315d7b to your computer and use it in GitHub Desktop.
Save i3arnon/201ec3e574a4dd315d7b to your computer and use it in GitHub Desktop.
Protobuf-net loses DateTime.Kind when deserializing.
static void Main()
{
var dolly = new Sheep {DateOfBirth = new DateTime(1966, 07, 05, 11, 0, 0, DateTimeKind.Utc)};
Console.WriteLine(dolly.DateOfBirth.ToString("HH:mm:ss K")); // "11:00:00 Z" (Z means UTC)
dolly = Serializer.DeepClone(dolly); // Serialize and deserialize using protobuf-net
Console.WriteLine(dolly.DateOfBirth.ToString("HH:mm:ss K")); // "11:00:00" (no Z means unspecified)
Console.WriteLine(dolly.DateOfBirth.ToLocalTime().ToString("HH:mm:ss K")); // "01:00:00 -10:00" (Hawaii timezone)
Console.WriteLine(dolly.DateOfBirth.ToUniversalTime().ToString("HH:mm:ss K")); // "21:00:00 Z"
}
[ProtoContract(ImplicitFields = ImplicitFields.AllPublic)]
class Sheep
{
public DateTime DateOfBirth { get; set; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment