【问题标题】:Faking time without changing Windows system clock在不更改 Windows 系统时钟的情况下伪造时间
【发布时间】:2010-10-01 01:22:43
【问题描述】:

有人知道向进程报告虚假日期/时间的 Windows 工具吗?

显然,有一些 Linux 程序可用于测试软件在未来/在不同时区的反应,或在不实际修改系统时钟的情况下触发计划任务。是否有适用于 Windows 的此类程序?

【问题讨论】:

    标签: datetime testing timezone virtualization clock


    【解决方案1】:

    RunAsDate 可以做到这一点。

    【讨论】:

    • 太棒了,谢谢。虽然它似乎不会影响初始进程可能启动的孙子进程,但总比没有好。
    【解决方案2】:

    包装您对“getCurrentDateTime()”系统调用的调用,以便您可以在测试期间代码读取的时间中引入偏移量或乘数?

    【讨论】:

      【解决方案3】:

      从大约 2 年前开始,我总是通过实用程序类抽象对 DateTime.Now (C#) 的调用。这样我就可以随时伪造日期/时间,或者直接将其传递给 DateTime.Now。

      听起来与 BillH 的建议类似。

      public class MyUtil
      {
        public static DateTime GetDateTime()
        {
           return DateTime.Now.AddHours(5);
           //return DateTime.Now;   
        }
      }
      

      【讨论】:

      • 你的意思是为了这个项目,对吧?它不会在系统范围内工作,对吧? :-)
      • 正确。仅适用于单个项目。如果系统为您提供了一种将其抽象出来的方法(在系统级别),那就太好了。 Docker 可以做到这一点吗?使用来自底层系统的错误/错误时间?我知道虚拟机可以。
      猜你喜欢
      • 2013-04-05
      • 2018-07-24
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多