在我的IOS应用程序中,我将用户的设备时间发送到我的服务器进行分析。 这是使设备发送的时间字符串的代码:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc]init];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[dateFormatter setCalendar:gregorianCalendar];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate* currentTime = [NSDate date];
NSString* deviceTimeString = [dateFormatter stringFromDate:currentTime];
[gregorianCalendar release];
[dateFormatter release];
我认为这应该涵盖所有不同的日历并设置IOS设备可能并且始终如一地创建可以格式化为日期时间的字符串。但这种情况并非如此。有时设备可能会发送一些奇怪的东西,例如:
২০১৪-০৫-১৯ ০১:৫১:২৪
我试图将我的测试设备的设置更改为不同的配置以重现这一点,但我无法做到。有没有人遇到过这个问题?
答案 0 :(得分:1)
要独立于设备上的区域设置,请使用本地en_US_POSIX
:
[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
这也解决了12小时与24小时的问题。