using System.Collections;
public static void Main()
var baseDateTimeOffset = new DateTimeOffset(2020, 1, 1, 0, 0, 0, TimeSpan.Zero);
var baseDateTime = new DateTime(2020, 1, 1, 0, 0, 0);
var serializer = new Quartz.Simpl.JsonObjectSerializer();
Console.WriteLine("DateTimeOffset PARSED from DateTime: \n\t"
+ DateTimeOffset.Parse(baseDateTime.ToString()));
var dateTimeOffsetFromDateTime = (DateTimeOffset)baseDateTime;
Console.WriteLine("\nDateTimeOffset CASTED from DateTime: \n\t"
+ DateTimeOffset.Parse(dateTimeOffsetFromDateTime.ToString()));
var yum = new Quartz.Util.StringKeyDirtyFlagMap();
yum.Put("DateTime", baseDateTime);
yum.Put("DateTimeOffset", baseDateTimeOffset);
var serializedBytes = serializer.Serialize(yum);
string jsonString = string.Empty;
using (var reader = new System.IO.StringReader(Encoding.UTF8.GetString(serializedBytes)))
jsonString = reader.ReadToEnd();
Console.WriteLine("\nSerialized JSON: \n\t" + jsonString);
var deserializedJsonObject = serializer.DeSerialize<IDictionary>(serializedBytes);
Console.WriteLine("\nDeserialized Object:"
+ "\n\t\tDateTime: " + deserializedJsonObject["DateTime"] + " -> Type: " + deserializedJsonObject["DateTime"].GetType().Name
+ "\n\t\tDateTimeOffset: " + deserializedJsonObject["DateTimeOffset"] + " -> Type: " + deserializedJsonObject["DateTimeOffset"].GetType().Name);