Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSDateFormatter忽略24小时时间格式_Iphone_Ios_Nsdate_Nsdateformatter - Fatal编程技术网

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。仍然给我相同的输出