本帖最后由 onlycxb 于 2015-9-28 21:59 编辑
网页数据获取,不可避免会遇到时间问题。 什么是时间戳? 时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。 数字时间戳技术是 数字签名技术一种变种的应用,是一种时间表示方式,定义为从 格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中(比如 Linux系统),也在许多其他操作系统中被广泛采用。[此段文字摘自百度]
下面, 我们以网抓过程中最常用的javascript和VBscript为例,分别给出时间与时间戳的转换方式。
下面是北京时间与时间戳的对比,我们可以利用此数据做为测试。 一、标准时间---->时间戳
方法1:利用javascript方法实现
- Sub javascript时间戳生成()'10位数字
- With CreateObject("MSScriptControl.ScriptControl")
- .Language = "javascript"
- .addcode ("function a(){return Math.round(new Date().getTime()/1000)}")
- Debug.Print .eval("a()")'立即窗口输出
- End With
- End Sub
复制代码 方法2:VBscript实现
- Sub VBscript时间戳生成()'10位数字
- Debug.Print DateDiff("s", "01/01/1970 00:00:00", Now()) 's秒
- End Sub
复制代码 二、时间戳---->标准时间
方法1:利用javascript实现- Sub javascript时间戳()'10位数字
- Dim t, MyDatetime As Date
- t = "1442975474 "
- With CreateObject("MSScriptControl.ScriptControl")
- .Language = "javascript"
- .addcode ("function a(t){return new Date(t * 1000).toLocaleString();}")
- MyDatetime = .eval("a(" & t & ")")
- Debug.Print MyDatetime
- Debug.Print Format(MyDatetime, "yy-mm-dd hh:mm")'这里加入格式输出
- End With
- End Sub
复制代码
方法2 :利用Vbscript实现
- Sub VBscript时间戳1()'10位数字
- t = "1442975474"
- Debug.Print DateAdd("s", t, "01/01/1970 08:00:00")
- End Sub
复制代码
- Sub VBscript时间戳2()'10位数字
- Dim t
- t = "1442975474"
- Debug.Print t / 60 / 60 / 24 + #1/1/1970 8:00:00 AM#
- End Sub
复制代码
上述代码,仅指10位数字时间(精确至秒)转换,在网抓过程和数据库应用中非常普遍,整理在此以便坛友查阅,不当之处请斧正!
|