2015-09-29 97 views
1

我想弄清楚幾個可用數字格式的日期的格式。我需要將它們轉換爲確切的日期。我有一個樣品的日期,我是想轉換:搞清楚這個日期格式

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#來執行此轉換。

回答

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(); 
+0

謝謝!我想我走得太近了。到1970年爲止,我增加了幾天而不是幾秒鐘。 –

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