2011-08-26 82 views
1

当日期(包括Now)始终从Windows系统日期/时间调用时,VBScript中出现问题。在VBScript中为日期对象设置日期和时间而不更改系统日期/时间

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

例如

当VBS通话日期,日期将返回当前系统日期(如果今天的日期是1/1/2001)

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 

感谢

+1

什么问题是你想解决?系统日期应该是日期,如果你想要的东西不是日期,你可以说'Mydate =#12/12/2000#'并使用它。 – Fionnuala

+0

嗨Remou,我正在开发自动化测试工具来检查许多设置日期的输出值,我想将我的代码(这是使用很多)中的所有日期更改为其他日期。我不想更改代码,因为它属于许多开发人员。他们使用日期获取当前日期,我需要将其更改为其他测试。 – i3gu

+0

Rob van der Woude http://www.robvanderwoude.com/datetimenonbatch.php#SetDateVBS? – Fionnuala

回答

5

仅有重新日期(),时间(),现在()。 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 
+0

可怕,但确实如此。 +1 –

+0

+1我会尽力:) – i3gu

相关问题