iphone - 将 NSDate 设置为特定日期、时间和时区

标签 iphone xcode nsdate init

我需要将 NSDate 设置为 iPhone 应用程序的特定日期、时间和时区。

下面的示例代码在 iOS 4 上运行良好,因为 setTimeZone 是在 iOS 4 中引入的。如何在不使用 setTimeZone 的情况下轻松将 NSDate 设置为日期、时间和时区,以便它可以在 iOS 3.0 设备上使用?

    NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2010];
[comps setMonth:8];
[comps setDay:24];
[comps setHour:17];
[comps setMinute:5];
[comps setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"] ];

NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *referenceTime = [cal dateFromComponents:comps];

我猜这应该很简单,但不知何故,NSDate、组件和日历和我不是好 friend ......

最佳答案

我想知道您是否可以在用于从 NSDateComponents 创建 NSDateNSCalendar 对象上设置时区。我没有尝试过,也不知道它是否有效,但可能值得一试。

关于iphone - 将 NSDate 设置为特定日期、时间和时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3655616/

相关文章:

ios - 跟踪每个用户的设备数量

ios - 用内容填充 TableView

ios - 未使用 Xcode 6.1 设置 Swift 可选变量

ios - Calendar.components 不能与 Swift 3 中的数组文字一起使用

cocoa-touch - 计算iOS中给定时间点之前的时间

objective-c - BC时代的NSCalendar问题

iphone - 比较 iOS 中 sqlite 数据库中的字符串(日期)

iphone - 如何在 iphone 中获取 NSMutableDictionary 计数?

xcode - 在构建中包含 'Run Script' 阶段输出文件

ios - 如何修复错误 : 'The app identifier "com. example.apple-samplecode.BreakfastFinder“无法注册到您的开发团队。”