在iOS中处理夏令时

在iOS中处理夏令时,ios,datetime,uidatepicker,Ios,Datetime,Uidatepicker,我正在为iOS编写一个基于日历事件的应用程序,我在处理日期和夏令时的问题上有一段疯狂的时间。我正在使用日期选择器,以便用户可以输入事件日期和时间。当他们这样做时,我要求提供NSDate对象的描述,我得到: 2015-01-13 17:34:47 +0000 不包含时区偏移,但已应用偏移(设置时间为下午1:34)。当我询问NSDate对象上的时区时,我得到: America/New_York (EST) offset -18000 Monday, March 9, 2015 at 1:39:0

我正在为iOS编写一个基于日历事件的应用程序,我在处理日期和夏令时的问题上有一段疯狂的时间。我正在使用日期选择器,以便用户可以输入事件日期和时间。当他们这样做时,我要求提供NSDate对象的描述,我得到:

2015-01-13 17:34:47 +0000
不包含时区偏移,但已应用偏移(设置时间为下午1:34)。当我询问NSDate对象上的时区时,我得到:

America/New_York (EST) offset -18000
Monday, March 9, 2015 at 1:39:01 PM Eastern Daylight Time
这是正确的

当我将日期提前到夏令时的一天时,我得到:

2015-03-09 17:39:01 +0000
也没有偏移,现在是错误的,因为偏移应该不同(应该是16:39:01)。当我询问时区时,我得到:

America/New_York (EST) offset -18000
现在是错误的(应该是EDT,偏移量为-14400)。但是,如果我要求在NSDate对象上使用区域设置进行描述,我会得到:

America/New_York (EST) offset -18000
Monday, March 9, 2015 at 1:39:01 PM Eastern Daylight Time
这是正确的,但格式不是很有用


我做错了什么?除了苹果公司的不太有用的日期/时间编程指南之外,有人知道iOS的相关信息来源吗?

如果您在问题中发布了相关代码来说明问题,这将非常有用。在DST案例中,您在选择器上输入了什么时间?