我正在处理需要iPhone日期和时间在服务器上发布的应用程序。现在,基于区域和时区,这个在不同设备上的日期和时间总是在世界各地不同。我想在24小时内有本地日期时间,但是如果用户更改了设置>日期&时间> 24小时时间>关闭
由于我没有得到'yyyy-MM-dd HH:mm:ss'格式的时间,因此在服务器端创建问题并在服务器上显示错误的日期和时间。对此有什么非常具体的解决方案吗?
答案 0 :(得分:2)
我建议你应该避免将格式化日期发送到服务器并改为发送UNIX时间戳。 [[NSDate date] timeIntervalSince1970]
为您提供了一个与时区无关的时间戳,您无需解析。如果您还需要时区,请将其标识符作为附加参数发送。
答案 1 :(得分:2)
如果您需要24小时格式的时间,请在dateFormatter中使用大写H:
dateFormatter.dateFormat = @"yyyy MM dd **HH**:mm:ss";
答案 2 :(得分:0)
与Costique说的一样,使用UNIX时间戳,但是如果你必须以String格式包含它,在格式字符串中包含时区并在服务器上处理它,你需要这样的东西:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[[NSLocale alloc]
initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];
[dateFormatter setLocale:enUSPOSIXLocale];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ssZZ"];
NSString *transDateStr = [dateFormatter stringFromDate:transDate];
[dateFormatter release];