设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 1384|回复: 0

VBS显示当前标准时间

[复制链接]

签到天数: 36 天

[LV.5]常住居民I

发表于 2016/11/8 15:19 | 显示全部楼层 |阅读模式 |Google Chrome 45.0.2454.101|Windows 7
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
  VBS显示当前标准时间,例如:执行下面的代码则显示:2013-05-11 19:10:11

  Option Explicit

  Dim blnDate, blnTime

  Dim dtmDate

  Dim intDay, intFormat, intHour, intMin, intMonth, intSec, intUTC, intValid, intYear

  Dim strISO

  With WScript.Arguments

  ' Check command line arguments

  If .Unnamed.Count = 0 Then dtmDate = Now

  If .Unnamed.Count > 0 Then dtmDate = .Unnamed(0)

  If .Unnamed.Count > 1 Then dtmDate = dtmDate & " " & .Unnamed(1)

  If .Unnamed.Count > 2 Then dtmDate = dtmDate & " " & .Unnamed(2)

  If .Unnamed.Count > 3 Then Syntax

  On Error Resume Next

  dtmDate = CDate( dtmDate )

  If Err Then

  On Error Goto 0

  Syntax

  End If

  On Error Goto 0

  If Not IsDate( dtmDate ) Then Syntax

  intValid = 0

  blnDate = True

  blnTime = True

  If .Named.Exists( "D" ) Then

  blnDate = True

  blnTime = False

  intValid = intValid + 1

  End If

  If .Named.Exists( "T" ) Then

  blnDate = False

  blnTime = True

  intValid = intValid + 1

  End If

  If intValid <> .Named.Count Then Syntax

  If intValid > 1 Then Syntax

  End With

  ' Format the output string

  intYear = DatePartLZ( "yyyy", dtmDate )

  intMonth = DatePartLZ( "m", dtmDate )

  intDay  = DatePartLZ( "d", dtmDate )

  intHour = DatePartLZ( "h", dtmDate )

  intMin  = DatePartLZ( "n", dtmDate )

  intSec  = DatePartLZ( "s", dtmDate )

  If blnDate Then strISO = intYear & "-" & intMonth & "-" & intDay

  If blnTime Then strISO = strISO & " " & intHour & ":" & intMin & ":" & intSec

  ' Display the result

  WScript.Echo Trim( strISO )

  Function DatePartLZ( myInterval, myDate )

  ' Add a leading zero to the DatePart() if necessary

  Dim strDatePart

  strDatePart = DatePart( myInterval, myDate )

  If Len( strDatePart ) < 2 Then strDatePart = "0" & strDatePart

  DatePartLZ = strDatePart

  End Function

  Sub Syntax

  WScript.Echo vbcrlf _

  & "Date2ISO.vbs, Version 1.02" _

  & vbCrLf _

  & "Convert any date/time to ISO date/time" _

  & vbCrLf & vbCrLf _

  & "Usage: CSCRIPT.EXE //NoLogo Date2ISO.vbs date [ time ] [ /D | /T ]" _

  & vbCrLf & vbCrLf _

  & "Where: ""date""  is the date to convert (default: current date/time)" _

  & vbCrLf _

  & "    ""time""  is the optional time to convert" _

  & vbCrLf _

  & "    /D    return date only (default: both date and time)" _

  & vbCrLf _

  & "    /T    return time only (/D and /T are mutually exclusive)" _

  & vbCrLf & vbCrLf _

  & "Note:  If the specified date is ambiguous, the current user's date" _

  & vbCrLf _

  & "    and time format is assumed." _

  & vbCrLf & vbCrLf _

  & "Written by Rob van der Woude" _

  & vbCrLf _

  & "http://www.robvanderwoude.com"

  WScript.Quit 1

  End Sub

  附上一段VBS校对系统时间的代码给大家参考下

  'VBS校准系统时间 BY BatMan

  Dim objXML, Url, Message

  Message = "恭喜你,本机时间非常准确无需校对!"

  Set objXML = CreateObject("MSXML2.XmlHttp")

  Url = "http://open.baidu.com/special/time/"

  objXML.open "GET", Url, False

  objXML.send()

  Do Until objXML.readyState = 4 : WScript.Sleep 200 : Loop

  Dim objStr, LocalDate

  objStr = objXML.responseText

  LocalDate = Now()

  Set objXML = Nothing

  Dim objREG, regNum

  Set objREG = New RegExp

  objREG.Global = True

  objREG.IgnoreCase = True

  objREG.Pattern = "window.baidu_time\((\d{13,})\)"

  regNum = Int(objREG.Execute(objStr)(0)。Submatches(0)) /1000

  Dim OldDate, BJDate, Num, Num1

  OldDate = "1970-01-01 08:00:00"

  BJDate = DateAdd("s", regNum, OldDate)

  Num = DateDiff("s", LocalDate, BJDate)

  If Abs(Num) >=1 Then

  Dim DM, DT, TM, objSHELL

  DM = DateAdd("S", Num, Now())

  DT = DateValue(DM)

  TM = TimeValue(DM)

  If InStr(Now, "午") Then

  Dim Arr, Arr1, h24

  Arr = Split(TM, " ")

  Arr1 = Split(Arr(1), ":")

  h24 = Arr1(0)

  If Arr(0) = "下午" Then

  h24 = h24 + 12

  Else

  If h24 = 12 Then h24 = 0

  End If

  TM = h24 & ":" & Arr1(1) & ":" & Arr1(2)

  End If

  Set objSHELL = CreateObject("Wscript.Shell")

  objSHELL.Run "cmd /cdate " & DT, False, True

  objSHELL.Run "cmd /ctime " & TM, False, True

  Num1 = Abs(DateDiff("s", Now(), BJDate))

  Message = "【校准前】" & vbCrLf _

  & "标准北京时间为:" & vbTab & BJDate & vbCrLf _

  & "本机系统时间为:" & vbTab & LocalDate & vbCrLf _

  & "与标准时间相差:" & vbTab & Abs(Num) & "秒" & vbCrLf & vbCrLf _

  & "【校准后】" & vbCrLf _

  & "本机系统时间为:" & vbTab & Now() & vbCrLf _

  & "与标准时间相差:" & vbTab & Num1 & "秒"

  Set objSHELL = Nothingwww.9ask.cn/zhuzhou/

  End If

  WScript.Echo Message
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/11/26 19:31 , Processed in 0.183271 second(s), 21 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表