繁体   English   中英

始终使用24小时制

[英]always use 24-hour format

我正在以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都会永远关闭。

您必须再次从该NSString创建一个NSDate ,只需将其强制为NSDate

使用NSDateFormatterNSDate转换为NSString ,反之亦然。
还请记住,初始化NSDateFormatter很大,因此,如果NSDateFormatter很多时间(例如,从服务器解析到/到服务器的大量数据),则要比对每种格式使用一个格式化器进行缓存。
不要在每个循环中使用相同格式创建NSDateFormatter

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM