我使用datepicker
来挑选time
,但在发送到服务器时,当我检索回来时,它显示5-6小时的差异。ios中的日期和时间问题
服务器在美国托管。
所以我如何准确无误地做到这一点,用户从任何地方做请求。
感谢,
阿伦
我使用datepicker
来挑选time
,但在发送到服务器时,当我检索回来时,它显示5-6小时的差异。ios中的日期和时间问题
服务器在美国托管。
所以我如何准确无误地做到这一点,用户从任何地方做请求。
感谢,
阿伦
UTC是要使用的标准时区。以下是获取UTC日期的代码
+(NSString *)getCurrentTime{
NSDate *date = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-ddHH:mm:ss"];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSString *dateStr = [dateFormat stringFromDate:date];
RELEASE_OBJECT(date)
RELEASE_OBJECT(dateFormat)
return dateStr;
}
如果您发送您的iPhone默认的时间到服务器和服务器还与发送,你必须把它然后同时这将是转换你NSDate
的问题NSString
NSDateFormater
与一些不同的时区。
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
当您使用NSDateFormater
时,使用上述代码。
希望这会帮助你。
所有最好的!
这是时区问题。您可以使用[yourDate dateByAddingInterval:[NSTimeZone secondsFromGMT]];
。
请尝试设置语言环境的时间:
以哪种方式NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd MM yyyy hh:mm:ss"]; [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; NSDate* sourceDate = [dateFormatter dateFromString:dateString]; //Timezones NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone]; //Interval in Timezones NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate]; NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate]; NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset; //converted date NSDate* destinationDate = [[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate] ; NSString *strFinalDate = [dateFormatter stringFromDate:destinationDate]; [dateFormatter release]; [destinationDate release];
你获得从服务器中的日期? – 2013-03-22 09:34:08
请显示您的代码并解释用于将日期发送到服务器的格式并将其读回。很可能是一个时区问题。 – 2013-03-22 09:35:18
[我应该复制粘贴这个吗?](http://stackoverflow.com/a/7213629/1756131) – 2013-03-22 09:36:10