【问题标题】:How to get 24 hr format time from iDevices?如何从 iDevices 获得 24 小时格式化时间?
【发布时间】:2010-12-07 05:34:27
【问题描述】:
我正在开发需要 iPhone 日期和时间才能在服务器上发布的应用程序。现在,根据地区和时区,不同设备上的这个日期和时间在世界各地总是不同的。我希望只有 24 小时的本地日期时间,但如果用户更改了 setting>date & time>24 小时时间>off
由于我没有以 'yyyy-MM-dd HH:mm:ss' 格式获取时间,因此它在服务器端产生问题并在服务器上显示错误的日期和时间。有没有非常具体的解决方案?
【问题讨论】:
标签:
ios
iphone
datetime
nsdateformatter
nstimezone
【解决方案1】:
我建议您应该避免将格式化的日期发送到服务器,而是发送 UNIX 时间戳。 [[NSDate date] timeIntervalSince1970] 为您提供与时区无关的时间戳,您无需解析。如果您也需要时区,请将其标识符作为附加参数发送。
【解决方案2】:
如果您需要 24 小时格式的时间,请在 dateFormatter 中使用大写 H:
dateFormatter.dateFormat = @"yyyy MM dd **HH**:mm:ss";
【解决方案3】:
就像 Costique 说的,使用 UNIX 时间戳,但如果你必须使用字符串格式,在格式字符串中包含时区并在服务器上处理它,你需要类似的东西:
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];