objective-c - 转换NSDate

标签 objective-c ios cocoa-touch nsdate

我有一个NSDate(让我们称之为x),12 September, 2012 10:18PM (GMT)。我想将x转换为当前时区(EST)午夜之前的一分钟。因此,转换后用EST表示在NSDateFormatter中的x将是12 September, 2012 11:59PM (EST)。最好的方法是什么?
谢谢

最佳答案

看看NSDateComponents:https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDateComponents_Class/Reference/Reference.html

我相信您需要将NSDate转换为NSDateComponents,将时间设置为11:59 PM,然后再转换回NSDate。

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:date];
[components setHour:23];
[components setMinute:59];
NSDate *convertedDate = [calendar dateFromComponents:components];

NSLog(@"date=%@, convertedDate=%@", date, convertedDate);

关于objective-c - 转换NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396936/

相关文章:

objective-c - iOS 6 中的 UIPopoverController 方向崩溃

ios - 计算航向 iOS mapkit

iOS 如何创建类似于 Twitter 心形按钮的动画按钮?

iphone - 处理 iPhone 上的注销功能

ios - 用户输入时如何检查文本字段输入字符串

ios - swift : Making a get request to Get source code

iphone - 分段单击时切换图像

iPhone 图像按钮

iphone - 用于将 iPhone 与 REST 服务器同步的代码

ios - objective-c .m 文件中的实例变量