我试图弄清楚以数字格式提供的几个日期的格式。我需要将它们转换为确切的日期。我有一个我试图转换的样本日期:
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#执行此转换。
答案 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