我正在研究一个项目的数据共享功能,这个功能在很大程度上取决于事先输入的值/结果,当我遇到同样的问题时。我实施了一个令人讨厌的小解决方法,将正确的日期时间以24h格式保存到数据库中。
的解决方案是非常简单的
首先,我从设备获取本地日期:
NSDate* now = [NSDate date];
第二步是建立与我们NSDateFormatter
区域,无论系统的语言环境,以确保那么“PM”将会是“PM”:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
然后,我得到日期(年,月,日)为一个字符串:
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString *date = [formatter stringFromDate:now];
在接下来的部分,我得到的小时,分钟和秒:
[formatter setDateFormat:@"hh"];
NSString *hours = [formatter stringFromDate:now];
[formatter setDateFormat:@"mm"];
NSString *minutes = [formatter stringFromDate:now];
[formatter setDateFormat:@"ss"];
NSString *seconds = [formatter stringFromDate:now];
接下来,我得到了一天的一部分:
[formatter setDateFormat:@"a"];
NSString *partOfDay = [formatter stringFromDate:now];
然后是逻辑:如果一天的部分时间是PM,但小时数少于12,我们只需要纠正这一点。在代码:
if([partOfDay isEqualToString:@"PM"] && [hours intValue] < 12) {
hours = [[NSString alloc] initWithFormat:@"%i", ([hours intValue] + 12)];
}
此修改后,我们准备把串起来,才能有一个日期时间随时可以保存到SQL:
NSString *sqlDateTime = [[NSString alloc] initWithFormat:@"%@ %@:%@:%@", date, hours, minutes, seconds];
这一切就是这么简单。从现在起,我们只能希望苹果能够解决这个问题,使它能够正常工作。
我希望这会有所帮助。
帮我解决这个问题 http://stackoverflow.com/questions/15162835/how-to-use-nsdateformatter-to-venezuela – tony