要求很简单。
我有2014-05-16 09:10am
格式的日期+时间。我想在NSDate
中对其进行转换,以便我可以添加/删除几个小时来获得一些计算的时间跨度。
在将此NSString
值转换为NSDate
时,我应该使用什么datetop?我试过了
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm a"];
[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm a"];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm"];
[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm a"];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm ZZZZ"];
我搜索了SO,但无法得到确切的答案。我也尝试过按照我的要求塑造它们,但到目前为止还没有增加。所以我在这里发帖子。
答案 0 :(得分:1)
问题在于您的营业时间HH - 24小时格式&& ...... - 12小时格式。
根据您输入的日期字符串,这是正常的
NSString* strdate = @"2014-05-16 09:10am";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mma"];
NSDate *date = [dateFormatter dateFromString:strdate];
答案 1 :(得分:1)
NSString* dateString = "2014-05-16 09:10am";
NSDateFormatter* formt = [NSDateFormatter new];
[formt setDateFormat:"yyyy-MM-dd hh:mma"]; //hh - for 12 hours format
NSDate* date = [formt dateFromString:dateString];
NSLog(@"your date is ==%@",date);
如果你需要增加几个小时
NSTimeInterval InEightHours = 8 * 60 * 60; //mutiple the hours with minutes
NSDate *dateHoursAhead = [date dateByAddingTimeInterval:InEightHours];
NSLog(@"your final date is ==%@", dateHoursAhead);