如何使用Python解析'/ Date(-62135596800000)/'之类的时间?
我搜索了互联网,但无法找到解决方案。
链接:http://211.137.19.74:8089/Ajax/GetStationDetailList?cityName=%E6%B2%88%E9%98%B3
时间点: “/日期(-62135596800000)/” 时间应该是2016:12:31:01:00
答案 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.fromtimestamp
或datetime.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)
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);