Iphone NSDateFormatter忽略24小时时间格式
我已经坐在这里很久了。我完全能够弄明白我做错了什么Iphone NSDateFormatter忽略24小时时间格式,iphone,ios,nsdate,nsdateformatter,Iphone,Ios,Nsdate,Nsdateformatter,我已经坐在这里很久了。我完全能够弄明白我做错了什么 NSString * dateString = @"2011-11-21 13:00"; NSDateFormatter *serverDateFormatter = [[NSDateFormatter alloc] init]; [serverDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"]; NSDate *serverDate = [serverDateFormatter dateF
NSString * dateString = @"2011-11-21 13:00";
NSDateFormatter *serverDateFormatter = [[NSDateFormatter alloc] init];
[serverDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *serverDate = [serverDateFormatter dateFromString:dateString];
NSLog(@"%@", serverDate);
输出:
2011-11-21 12:00:00+0000
为什么13:00转换为12:00?我做错了什么?我想你可能会在这次讨论中找到答案。显然,NSDateFormatter喜欢使用用户的设置,这可能不合适 虽然我认为这个答案是为了停止24小时的行为,这是你想要强迫的 我想说的是,你想把setLocale部分搞定 埃塔:这里有更多的信息:
这将允许您的代码检测设备是尝试运行12小时还是24小时。我想您可能会在本讨论中找到答案。显然,NSDateFormatter喜欢使用用户的设置,这可能不合适 虽然我认为这个答案是为了停止24小时的行为,这是你想要强迫的 我想说的是,你想把setLocale部分搞定 埃塔:这里有更多的信息:
这将允许您的代码检测设备是尝试执行12小时还是24小时的操作。如果您通过[serverDateFormatter stringFromDate:serverDate]输出会怎么样 如果通过[serverDateFormatter stringFromDate:serverDate]输出会怎么样 您需要设置时区,例如
NSString * dateString = @"2011-11-21 23:20";
NSDateFormatter *serverDateFormatter = [[NSDateFormatter alloc] init];
[serverDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[serverDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *serverDate = [serverDateFormatter dateFromString:dateString];
NSLog(@"%@", serverDate);
输出:
2011-11-23 14:22:10.924 xxx[23235:207]2011-11-21 23:20:00+0000您需要设置时区,例如
NSString * dateString = @"2011-11-21 23:20";
NSDateFormatter *serverDateFormatter = [[NSDateFormatter alloc] init];
[serverDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[serverDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *serverDate = [serverDateFormatter dateFromString:dateString];
NSLog(@"%@", serverDate);
输出:
2011-11-23 14:22:10.924 xxx[23235:207]2011-11-21 23:20:00+0000。我还设置了NSLocale。仍然给我同样的输出力。我还设置了NSLocale。仍然给我相同的输出