如何使用Python解析像'\ / Date(-62135596800000)\ /'这样的时间

时间:2016-12-30 16:38:20

标签: python datetime time

如何使用Python解析'/ Date(-62135596800000)/'之类的时间?

我搜索了互联网,但无法找到解决方案。

链接:http://211.137.19.74:8089/Ajax/GetStationDetailList?cityName=%E6%B2%88%E9%98%B3

时间点: “/日期(-62135596800000)/” 时间应该是2016:12:31:01:00

3 个答案:

答案 0 :(得分:3)

/Date(N)/通常是.NET中内置WCF JSON序列化程序序列化的日期格式。然后可以通过在JavaScript中调用new Date(N)来重建该值。

在JavaScript中运行它将显示为什么这个日期很可能是错误的:

new Date(-62135596800000)
// Date 0001-01-01T00:00:00.000Z

如您所见,您获得了0001-01-01 00:00:00.00。对于空DateTime个对象,这也恰好是.NET中的默认值:

default(DateTime).ToString("u") // 0001-01-01 00:00:00Z
new DateTime(0).ToString("u") // 0001-01-01 00:00:00Z

所以,很抱歉这样说,但那台服务器刚好坏了。

总而言之,一旦获得有效日期,您可以使用datetime.fromtimestampdatetime.utcfromtimestamp在Python中解析数字:

>>> from datetime import datetime
>>> datetime.fromtimestamp(1483120713887 // 1000)
datetime.datetime(2016, 12, 30, 18, 58, 33)

答案 1 :(得分:1)

使用python 3.x
看起来像纪元时间(从格林威治标准时间1970年1月1日00:00:00,000开始的纳秒)。你可以使用这样的东西:

from datetime import datetime
dt = datetime.fromtimestamp(62135596800000 // 1000000000)
print(dt)

至于您获得的价值,您不能拥有负的纪元时间戳(-62135596800000无效)。如果 - 表示否定,则可能是另一种时间戳格式。

答案 2 :(得分:0)

来源ASP.NET FORUMS

var dateString = "/Date(1526409000000)/".substr(6);
var currentTime = new Date(parseInt(dateString));
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();
var date = day + "/" + month + "/" + year;
alert(date);