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);
            }
Beispiel #2
0
 public static DateTime FromUnixTimestamp(long timestamp)
 {
     return(Epoch.Add(TimeSpan.FromMilliseconds(timestamp)));
 }