搞清楚这个日期格式

时间:2015-09-29 08:46:19

标签: c# datetime binary instagram type-conversion

我试图弄清楚以数字格式提供的几个日期的格式。我需要将它们转换为确切的日期。我有一个我试图转换的样本日期:

1443506173.0  >>  Sep 29, 2015
1443505895.0  >>  Sep 29, 2015
1441805416.0  >>  Sep 09, 2015
1438174556.0  >>  Jul 29, 2015
1436476814.0  >>  Jul 10, 2015
1414994162.0  >>  Nov 03, 2014
1413294207.0  >>  Oct 14, 2014

通过查看前两个条目,我可以看到数字正在变化,但两者都代表相同的日期。意味着必须有时间嵌入此日期格式。目前我只关注提取日期,我现在不需要提取时间。如果它足够简单以提取时间,那将会很棒。

任何人都可以帮忙解决这个问题吗?如果您想知道,我从Instagram帖子Feed中获取这些日期。使用WebClient我下载了Instagram照片的URL。脚本部分中有此日期格式。如果我能够解码这种日期格式,我会知道照片的日期(和时间)是在Instagram上的。

提前致谢。我正在使用C#执行此转换。

2 个答案:

答案 0 :(得分:3)

Instagram使用Unix Timestamp作为格式(1970年1月1日以来的秒数)。

将此转换为DateTime对象的一种方法是:

DateTime dateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
dateTime = dateTime.AddSeconds(yourUnixTimestampValue).ToLocalTime();

答案 1 :(得分:1)

这是一个UNIX时间戳

void Main()
{
    var timestamps = new[]{
        new {stamp = 1443506173.0, datetime = new DateTime(2015, 9, 29)},
        new {stamp = 1443505895.0, datetime = new DateTime(2015, 9, 29)},
        new {stamp = 1413294207.0, datetime = new DateTime(2014, 10, 14)}
    };

    Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
    foreach (var i in timestamps)
    {
        Console.WriteLine("Item: {0}, Converted: {1}", i, new DateTime(1970, 1,1).AddSeconds(i.stamp).ToLongDateString());
    }
}

输出:

Item: { stamp = 1443506173, datetime = 09/29/2015 00:00:00 }, Converted: Tuesday, 29 September 2015
Item: { stamp = 1443505895, datetime = 09/29/2015 00:00:00 }, Converted: Tuesday, 29 September 2015
Item: { stamp = 1413294207, datetime = 10/14/2014 00:00:00 }, Converted: Tuesday, 14 October 2014