Rob*_*edy 11 c++ windows timezone unit-testing
我写了一个函数来返回time_t
给定日期对应午夜的值.当某一天没有午夜时,它会返回最早的可用时间; 例如,当埃及进入夏令时时,就会发生这种情况.今年,时间变更将于4月29日晚上午夜生效,因此时钟从23:59直接到01:00.
现在我正在为这个函数编写单元测试,其中一个测试应该复制埃及场景.在Unix中,我可以像这样完成它:
putenv("TZ", "Egypt", true);
tzset();
Run Code Online (Sandbox Code Playgroud)
在这样做之后,进一步的呼吁localtime
表现得好像他们在埃及而不是明尼苏达,我的测试通过了.但是,仅仅设置环境变量对Windows没有任何影响.如果不影响系统上运行的其他程序,我该怎么做才能让单元测试认为它在其他地方?
LBu*_*kin -2
您见过SetTimeZoneInformation Win32 API 函数吗?
归档时间: |
|
查看次数: |
4114 次 |
最近记录: |