【问题标题】:Set Date and Time in VBScript for Date object without changing system Date/Time在 VBScript 中为 Date 对象设置日期和时间而不更改系统日期/时间
【发布时间】:2011-08-26 20:21:49
【问题描述】:

当日期(包括现在)总是从 Windows 系统日期/时间调用时,我在 VBScript 中遇到了问题。

如何在不配置 Windows 系统日期/时间的情况下为 VBScipt 设置日期/时间。

例如

在VBS中调用Date时,Date会返回当前系统日期(如果今天是2001年1月1日)

Dim settingDate
settingDate = Date
//settingDate = 1/1/2001

我想要连接 VBS 代码以从我们设置的日期获取日期,而无需从代码更改 Windows 系统日期/时间

//Implement something to tell VBS that current date is 12/12/2000
Dim settingDate
settingDate = Date
//settingDate = 12/12/2000

谢谢

【问题讨论】:

  • 您要解决什么问题?系统日期应该是日期,如果你想要日期以外的东西,你可以说Mydate=#12/12/2000#并使用它。
  • 嗨 Remou,我正在开发自动化测试工具来缓存许多设置日期的输出值,我想将我的代码中的所有日期(使用很多)更改为其他日期。我不想更改代码,因为它属于许多开发人员。他们正在使用 Date 来获取当前日期,我需要将其更改为其他日期以进行测试。

标签: datetime vbscript


【解决方案1】:

只需重新定义 Date()、Time()、Now()。 POC 脚本:

  WScript.Echo "Date()", Date()
  WScript.Echo "Time()", Time()
  WScript.Echo "Now()" , Now()
  ExecuteGlobal Join( Array( _
      "Function Date()" _
    , "  Date = #1/1/2012#" _
    , "End Function" _
    , "Function Time()" _
    , "  Time = TimeSerial( 1, 2, 3 )" _
    , "End Function" _
    , "Function Now()" _
    , "  Now = CDate( 4711.1147 )" _
    , "End Function" _
  ), vbCrLf )
  WScript.Echo "Date()", Date()
  WScript.Echo "Time()", Time()
  WScript.Echo "Now()" , Now()

输出:

Date() 26.08.2011
Time() 14:19:41
Now() 26.08.2011 14:19:41
Date() 01.01.2012
Time() 01:02:03
Now() 23.11.1912 02:45:10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多