收到的IOS设备时间字符串格式错误

时间:2014-05-19 10:50:24

标签: ios datetime nsdate

在我的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设备可能并且始终如一地创建可以格式化为日期时间的字符串。但这种情况并非如此。有时设备可能会发送一些奇怪的东西,例如:

২০১৪-০৫-১৯ ০১:৫১:২৪

我试图将我的测试设备的设置更改为不同的配置以重现这一点,但我无法做到。有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:1)

要独立于设备上的区域设置,请使用本地en_US_POSIX

[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

这也解决了12小时与24小时的问题。