2014-03-03 92 views
1

我正在從API請求我的應用程序。其中聲稱日期/時間格式爲長。我正在嘗試使用以下幾行來轉換它。長轉換爲DateTime在Windows Phone的C#

DateTime? dt = new DateTime(long.Parse(detail.CREATEDTIME)); 
MessageBox.Show(detail.CREATEDTIME + "=>" + dt.Value.ToString("yyyy-MM-dd")); 

實際的輸出如下:

1393559958788=>0001-01-02 

但預期輸出如下:

1393559958788=>2014-02-28 

預期的輸出是從Java。我如何使用C#做到這一點?

回答

4

最有可能的long值表示Unix Timestamp

檢查這個question如何轉換。

但是請注意,你的價值觀似乎是毫秒,因爲1/1/1970,不被秒,所以你可能需要使用.AddMilliseconds,而不是.AddSeconds,

的代碼我用來確認這是:

DateTime d = new DateTime(1970, 1, 1,0,0,0,0,DateTimeKind.Utc).AddMilliseconds(1393559958788); 
Console.WriteLine(d); // 28/02/2014 03:59:18 
+0

謝謝..它的工作.. – Presse

1

這是你在找什麼:

DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); 
dt = dt.AddMilliseconds(long.Parse(detail.CREATEDTIME)).ToLocalTime(); 
MessageBox.Show(detail.CREATEDTIME + "=>" + dt.Value.ToString("yyyy-MM-dd")); 
+0

由於它的工作原理.. – Presse