Objective c 如何防止时区更改时NSDatePicker时间更改

Objective c 如何防止时区更改时NSDatePicker时间更改,objective-c,cocoa,timezone,nsdate,nsdateformatter,Objective C,Cocoa,Timezone,Nsdate,Nsdateformatter,为什么NSDatePicker在更改时区时更改其datevalue?以及如何防止日期选择器的日期值的更改 我知道如果我们设置“datepicker”的时区,它不会改变,我的确切要求是,“datepicker”的时间以及日期组件的时间不应该改变,但同时应用程序应该遵循改变的“时区” 我的确切要求是在任何时区操作都应该在特定的时间执行。但是日期选择器的时间不应该在应用程序应遵循当前时区的同时更改 提前感谢您必须遵守NSSystemClockDidChangeNotification,请参阅: 然后

为什么
NSDatePicker
在更改
时区时更改其
datevalue
?以及如何防止
日期选择器的
日期值的更改

我知道如果我们设置“datepicker”的时区,它不会改变,我的确切要求是,“datepicker”的时间以及日期组件的时间不应该改变,但同时应用程序应该遵循改变的“时区”

我的确切要求是在任何时区操作都应该在特定的时间执行。但是日期选择器的时间不应该在应用程序应遵循当前时区的同时更改


提前感谢

您必须遵守NSSystemClockDidChangeNotification,请参阅:

然后,您必须计算新日期并在NSDatePicker中设置它

或者,您也可以设置选择器的时区,使其不使用自动更新的当前区域设置


这取决于您希望实现的目标,因为第一个将更改日期值,第二个将冻结特定时区中的视图层。

当时区更改时,我不会收到任何时钟更改通知,我可以收到NSSystemTimeZonedChange通知,但问题是,它在某些情况下会发送两次通知(使用旧时区和新时区),在某些情况下只发送一次。因此,我无法准确计算两个时区之间的偏移量。