public void TestTimeUtil() { DateTime _dateBefore = TimeUtil.LocalTimeToUTCTime(DateTime.Now); Console.WriteLine("Date: " + _dateBefore); Int64 _dateTimeMillis = TimeUtil.UTCDateTimeToUTCMillis(_dateBefore); Console.WriteLine("Date Converted to Millis: " + _dateTimeMillis); DateTime _dateAfter = TimeUtil.UTCMillisToUTCDateTime(_dateTimeMillis); Console.WriteLine("Date Converted back: " + _dateAfter); Int64 _dateAfterMillis = TimeUtil.UTCDateTimeToUTCMillis(_dateAfter); Console.WriteLine("Date Converted to Millis: " + _dateAfterMillis); //in c# the z time in UTC can differ by up to 0.9 seconds when converted. So the assert will never match Assert.AreEqual(_dateTimeMillis, _dateAfterMillis); DateTime _localDate = DateTime.Now; Console.WriteLine("Local Date: " + _localDate); DateTime _utcDate = TimeUtil.LocalTimeToUTCTime(_localDate); Console.WriteLine("UTC Date: " + _utcDate); DateTime _newDate = TimeUtil.UTCTimeToLocalTime(_utcDate); Console.WriteLine("Converted back to Local: " + _newDate); Assert.AreEqual(_localDate, _newDate); DateTimeOffset _dateOffset = TimeUtil.LocalTimeToUTCTime(DateTimeOffset.Now); Console.WriteLine("DateTime Offset: " + _dateOffset); Int64 _ms = TimeUtil.DateTimeOffsetToUTCMillis(_dateOffset); Console.WriteLine("UTC Millis of offset: " + _ms); DateTimeOffset _dateOffsetAfter = TimeUtil.UTCMillisToDateTimeOffset(_ms); Console.WriteLine("DateTime Offset After: " + _dateOffsetAfter); Int64 _msAfter = TimeUtil.DateTimeOffsetToUTCMillis(_dateOffsetAfter); Console.WriteLine("UTC Millis of offset After: " + _msAfter); Assert.AreEqual(_ms, _msAfter); }