1.获取北京时间、年月日 授时api
苏宁获取北京时间的api不要太方便:/getSysTime.do
使用 Fiddler抓包调试,查看HTTP返回报文:
双击左侧抓取到的HTTP返回报文。使用SyntaxView 插件查看返回消息。
HTTP返回报文:
{"sysTime2":"-08-07 16:33:25","sysTime1":"2007163325"}
则当前的北京时间为: 8月7日 16时33分25秒
有年月日,有时间。美中不足的是没有 星期几。
2.GMT格林威治时间转换为北京时间,获取星期几
如果要获取星期几,可以从 HTTP返回报文的帧头提取。
使用Raw插件查看。
HTTP返回报文:
HTTP/1.1 200 OKDate: Fri, 07 Aug 08:33:25 GMTContent-Type: text/html;charset=UTF-8Content-Length: 62Connection: keep-aliveServer: styxSet-Cookie: tradeLdc=NJYH;Expires=Fri, 07-Aug-20 20:33:25 GMTSet-Cookie: tradeLdc=NJGX_YG;Expires=Fri, 07-Aug-20 20:33:25 GMTCache-Control: no-cache,no-store,max-age=0,s-maxage=0Access-Control-Allow-Credentials: trueX-Ser: BC15_yd-anhui-huainan-4-cache-1X-Cache: MISS from BC15_yd-anhui-huainan-4-cache-1(baishan){"sysTime2":"-08-07 16:33:25","sysTime1":"2007163325"}
Date: Fri, 07 Aug 08:33:25 GMT
HTTP返回报文的帧头,携带有GMT 格林威治标准时间。
我们可以由GMT推算出其他时区的时间。北京时间是 GMT+8小时。
而星期可不像日期那样分大小月平闰年,是可以完全无差别计算的。
所以只要将获取到的 GMT时间+8,如果 (+8后的值 > 24:00:00),则 星期+1,否则 星期不变。
如果 星期> 7,星期-= 7。
-- 例如现在GMT时间为:08:33:25 ,推算出北京时间为:16:33:25
而(16:33:25 < 24:00:00),则星期不变。
-- 如果返回消息为:Date: Fri, 07 Aug 20:33:25 GMT
GMT时间为:20:33:25 ,推算出北京时间为:28:33:25
而(28:33:25>24:00:00),则星期+1,Fri星期五 变为 Sat星期六。
-- 如果返回消息为:Date: Sun, 07 Aug 20:33:25 GMT
GMT时间为:20:33:25 ,推算出北京时间为:28:33:25
而(28:33:25>24:00:00),则星期+1,Sun星期七变为 星期八。
而 (星期八 > 星期七),则星期八 -= 7,即为 Mon星期一。
物联网设备获取北京时间 年月日 星期几 GMT格林威治标准时间转换为北京时间 授时api Fiddler抓包调试