始终使用24小时格式

时间:2014-03-14 13:21:54

标签: ios nsdate

我正在以24小时格式捕获日期,在配置了24小时工作正常的设备上,但如果设备已经添加了12点钟我或者下午并且不能很好地为我服务。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"ddMMYYYYHHmmss"];
NSDate *hoy = [NSDate date];
NSString *fecha = [format stringFromDate:hoy];
[defaults setObject:fecha forKey:@"ValorHoy"];
[defaults synchronize];
NSDate *fechaGuardada = (NSDate*)[defaults objectForKey:@"ValorHoy"];

我总是需要在某些设备上以这种格式生成日期ddMMyyyyHHmmss - (010220141405)但是我得到了(010220141405 pm)不服务我,服务器无法识别,因为am或pm永远不管时间格式设备。

1 个答案:

答案 0 :(得分:0)

您必须再次从NSDate发出NSString,您可以强制它为NSDate

使用NSDateFormatterNSDate转换为NSString,反之亦然。
还要记住,初始化NSDateFormatter是很昂贵的,所以如果你经常使用它(比如从服务器解析大量数据),而不是为每种格式使用缓存一个格式化程序。
不要在每个循环中以相同的格式创建NSDateFormatter

// Replace this
NSDate *fechaGuardada = (NSDate*)[defaults objectForKey:@"ValorHoy"];

// With this
NSDate *fechaGuardada = [format dateFromString:[defaults objectForKey:@"ValorHoy"]];