我用Google搜索了很多次,但我对给出的答案并不满意。请任何人都能给出我需要的正确答案。
这是来自DB的检索日期字符串: 2015-05-27 10:19(yyyy-MM-dd HH:mm)
我想转换为NSDate
。
我的代码如下:
NSString *date_str = @"2015-05-27 10:19";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date = [dateFormat dateFromString:date_str];
NSLog(@"date == %@",date);
但输出为:date == 2015-05-27 04:49:00 +0000
显示 04:49:00 时间,但我的检索时间 10:19 。
如何从数据库中检索完美时间。
请帮帮我......
答案 0 :(得分:1)
只需将您的日期转换为GMT时间,如下所示: -
NSString *date_str = @"2015-05-27 10:19";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormat setTimeZone:gmt];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date = [dateFormat dateFromString:date_str];
输出是: -
date == 2015-05-27 10:19:00 +0000
获取没有+0000的日期,您可以直接将其存储在NSString中: -
NSString *s = [dateFormat stringFromDate:date];
输出: -
2015-05-27 10:19
答案 1 :(得分:1)
您正面临着转化的时区问题,因为服务器时间和本地时区可能会有所不同。因此,您需要将时区设置为dateformatter,如
[dateFormater setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];