首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于在VBscript中重新格式化日期/时间的RegExp

用于在VBscript中重新格式化日期/时间的RegExp
EN

Stack Overflow用户
提问于 2015-01-28 21:08:41
回答 1查看 104关注 0票数 0

我找了无数个小时,但我找不到任何对我有帮助的东西。

我正在编写一个脚本来计算EC2中特定实例的启动时间,并返回以秒为单位的总运行时间。当我运行这个不完整的脚本时,我得到了类似于'2015-01-28T01:56:11.000Z‘的'gettimeoutput’的值(参见参考资料)。我只想要一种适当的格式,这样我就可以使用dateDiff()函数来计算到当前时刻所经过的时间。

‘'getltimef’将是dateDiff可读格式的开始时间,'timeinsec‘将是最终输出(经过的时间)。Starttimer()函数将启动一个静默计时器,该计时器也将不断更新'timeinsec‘变量的值。

有人能帮我一下吗?

参考文献:

1] PHP Parsing Amazon EC2 instance 'launchTime'

2] http://giantdorks.org/alain/how-to-test-age-of-an-aws-instance-in-a-shell-script-2

代码语言:javascript
复制
Function getinfo()

Set instanceid = CreateObject("MSXML2.XMLHTTP.3.0")
Set regiondata = CreateObject("MSXML2.XMLHTTP.3.0")

instanceid.Open "GET", "http://169.254.169.254/latest/meta-data/instance-id", False
instanceid.Send
regiondata.Open "GET", "http://169.254.169.254/latest/meta-data/placement/availability-zone", False
regiondata.Send

Const getltimeFinished = 1
Const getltimeFailed = 2
getltimeCommand = "aws ec2 --region " regiondata.responseText " describe-instances " instanceid.responseText "--filter=""launch-time"""

Set getltimeShell = CreateObject("WScript.Shell")
Set getltimeShellExec = getltimeShell.Exec(getltimeCommand)

Select Case getltimeShellExec.Status

Case getltimeFinished
   launchtimedetermined = true
   getltimeOutput = getltimeShellExec.StdOut.ReadAll

Case getltimeFailed
   launchtimedetermined = false

End Select

if (launchtimedetermined) = false Then
timeinsec = 240
Else

'getltimef script'
'getltimef = maybe regexp can work here?'
'timeinsec = datediff("s", getltimef, now())'


Call starttimer()

End Function    

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-01-29 22:36:13

使用RegExp查找由垃圾和日期/时间序列()分隔的数字;如下所示:

代码语言:javascript
复制
s = "2015-01-28T01:56:11.000Z"
Set r = New RegExp
r.Pattern = "(\d+).(\d+).(\d+).(\d+).(\d+).(\d+)"
Set m = r.Execute(s)(0)
d = DateSerial(CInt(m.Submatches(0)), CInt(m.Submatches(1)), CInt(m.Submatches(2))) + TimeSerial(CInt(m.Submatches(3)), CInt(m.Submatches(4)), CInt(m.Submatches(5)))
WScript.Echo s, TypeName(d), d, "(german locale)"

输出:

代码语言:javascript
复制
cscript 28164812.vbs
2015-01-28T01:56:11.000Z Date 28.01.2015 01:56:11 (german locale)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28193133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档