在 Cocoa 和 CocoaTouch 内测试夏令时

Testing for daylight saving time within Cocoa and CocoaTouch

我正在开发一个日历应用程序,它需要绘制矩形,其高度和垂直位置基于它们所代表的事件的开始日期。我正在尝试根据夏令时的日期和时区测试布局系统。具体来说,我想说明这样一个事实,即在某些地区,夏令时可以 remove/add 一个小时到一天。

目前我对如何针对夏令时编写单元测试感到困惑。

查看 NSTimeZone class reference. It has a handy BOOL property called -daylightSavingTime and related friends you may find useful. You can create a date with a specific time zone / 日期组合以获取您需要的内容并提供该内容而不是系统提供的时间。

但是,我不确定是否有办法以编程方式更改系统时间(即使在模拟器中)。我没有尝试过这样的事情,但也许创造性地使用一些预处理器宏 and/or 环境变量可以让你在测试状态之间切换。