我正在使用NSDateComponents从以下字符串构建一个日期:
"2014-05-17 02:39:00 PM +0000"当我设置所有组件并返回我得到的NSDate时(参见下面的方法):
"2014-05-17 02:39:00 AM +0000"我的问题是,有没有一种方法可以将AM/PM指定到NSDateComponent,或者如果源日期是PM,我是否只需在我的小时数中加上12?
- (NSDate *)dateFromYear:(int)year month:(int)month day:(int)day hour:(int)hour minute:(int)minute {
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
[components setHour:hour];
[components setMinute:minute];
NSCalendar *calendar = [NSCalendar currentCalendar];
return [calendar dateFromComponents:components];
}发布于 2012-11-01 23:03:39
显然,NSDateComponents似乎没有指定这一点。苹果自己的文档是这样写的:
要点: NSDateComponents对象本身是没有意义的;您需要知道它是根据哪个日历解释的,并且需要知道值是单位的绝对值还是单位的数量。
除了您的12小时逻辑之外,您还可以选择使用使用AM/PM的NSDate类dateWithNaturalLanguageString,并以某种方式将其用于您的目的。
https://stackoverflow.com/questions/13179433
复制相似问题