回答
使用NSCalendar
小号components:fromDate:
得到两个日期的components。
然后根据需要使用dateFromComponents:
重新组合它们。
如果我得到你的权利NSDate
小号-dateByAddingTimeInterval:
与-timeIntervalSinceDate:
在一起是你在寻找什么。
心连心
-f
我有两个NSDate,日期和时间。
听起来像你会错误的。
NSDate代表特定时刻(自纪元起X秒)。一个NSDate不是简单的“x点”或“日历上的这个日期”,你不应该试图将它们结合起来,就好像它们一样,因为诸如DST之类的效果可能会使你的计算错误(在某些时区,某些日期有两个1:00小时,有些没有2:00小时)。
考虑使用NSDatePicker或UIDatePicker(如适用)让用户从一个地方输入日期和时间。这不仅对你来说更容易,它也会给出更正确的结果。
如果您正在从文件或类似来源分别读取这两部分,并且您不控制格式(因此您无法命令生成端以其一次值的时间发布日期),那么您需要做以下两件事之一:
如果可能的话,结合这两个字符串。例如,可以将ISO 8601日期(例如“2010-05-10”)和ISO 8601时间(例如“23:20:19-0700”)与它们之间的“T”连接以形成有效,完全指定的ISO 8601日期(“2010-05-10T23:20:19-0700”)。然后,您可以将此单个字符串传递给正确配置的NSDateFormatter。
如果出于某种原因无法合理组合字符串,请自行解析并自行填写单个NSDateComponents对象。
这并不令人愉快,但正确性很重要,而且只有一些用户每年仅在两个小时内发生的错误(不正确的日期解析)才会令人生气。
目标是生成一个完全描述相关日期和时间的NSDate对象。这是确保在任何情况下都能得到正确的NSDate值的唯一方法。
谢谢,这工作得很好:-) – niklassaers 2010-05-10 19:29:29