public object GetDeserializedObject(object obj, Type targetType) { var data = obj as Queue <object>; if (data == null) { return(obj); } if (data.Count == 0) { return(obj); } var replacement = new Queue <object>(data.Count); foreach (var item in data) { var enqueuedItem = item; var s = item as string; if (s != null) { var match = DateTimeFormat.Match(s); if (match.Success) { var timeZoneDesignator = short.Parse(match.Groups[2].Value); var milliseconds = long.Parse(match.Groups[1].Value); var dateTime = Epoch.Add(TimeSpan.FromMilliseconds(milliseconds)); dateTime = dateTime.AddHours(timeZoneDesignator / 100); dateTime = dateTime.AddMinutes(timeZoneDesignator % 100); enqueuedItem = dateTime; } } replacement.Enqueue(enqueuedItem); } return(replacement); }
public static DateTime FromUnixTimestamp(long timestamp) { return(Epoch.Add(TimeSpan.FromMilliseconds(timestamp))); }