如何在Windows Phone 8中将json日期转换为c#

时间:2014-01-23 08:11:28

标签: windows-phone-8

我必须将json日期转换为c#datetime格式

  

日期是3190549620000

     

它的原始日期格式是24jan2014 1:17 pm

我怎么能转换这个,同时我跟着这个blog,但它不起作用

2 个答案:

答案 0 :(得分:2)

首先,3190549620000非常大,在使用您链接的方法时会导致溢出。 3190549620(除以1000,表示原文位于 milli 秒)效果更好。

其次,如果我使用您链接的方法恢复到unix时间戳,我会得到1390565820。

比较

1390565820 3190549620

如果我将示例中的31反转为13,我会得到正确的日期,但时间不正确。你能验证并确认你的输入是以31而不是13开始吗?

日期问题很简单:它似乎是5:30的区别。你在哪个时区?我的猜测是IST,所以这只是一个时区偏移问题:)

您的时间戳()似乎是UTC。

将链接中的代码更改为:

 private static DateTime ConvertFromUnixTimestamp(double timestamp)
 {
     var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
     return origin.AddSeconds(timestamp / 1000).ToLocalTime();
 }

如果我使用1390549620000而不是3190549620000作为输入,我会得到您想要的结果。

答案 1 :(得分:0)

首先,您需要知道该整数表示的内容。通常在许多服务中使用EPOCH日期。这些EPOCH编号是自1970年1月1日0:0:0以来的秒,是Unix中的第一个日期。但是,您正在使用的服务可能会返回您的日期或其他日期格式。你能看一下docs吗?