首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使iPhone时间与服务器同步的最佳方法

使iPhone时间与服务器同步的最佳方法
EN

Stack Overflow用户
提问于 2011-07-18 20:54:28
回答 3查看 5.6K关注 0票数 6

我有一个客户端服务器模型,其中服务器将发送一些具有日期参数的数据,iPhone将需要呈现这些数据。服务器和iPhone将位于不同的时区。所以我需要在两者中同步时间。假设用户在"07/18/2011/04 /45/EDT“(服务器时间)做了一些活动。在iPhone端,我需要将这个日期字符串转换为一个NSDate对象。

实现这一目标的最佳方法是什么?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2013-10-03 00:00:02

很抱歉回复晚了,只是在谷歌上搜索了"NSDate同步到服务器“,然后就到了这里。我遇到了同样的问题,并写了这个很好的小类别,这对我很有帮助。

它可以返回一个同步到任何web服务器的NSDate对象,只需一个HTTP请求(每个会话)。

https://github.com/freak4pc/NSDate-ServerDate

如果你有任何问题,请随时告诉我。

票数 3
EN

Stack Overflow用户

发布于 2011-07-19 17:25:11

如果您希望服务器和客户端的时间相同,请使用NTP (网络时间协议)对两者进行同步。http://code.google.com/p/ios-ntp/source/browse/trunk/ntpA.xcodeproj/project.pbxproj?spec=svn25&r=25上提供了一个obj-c ntp客户端

如上所述,总是将时间存储/发送为unix时间戳(从纪元UTC开始的秒数),并在必要时转换为时区。

票数 2
EN

Stack Overflow用户

发布于 2011-07-18 21:52:59

您绝对可以通过以下方式来实现此目的:

1)第一次从服务端拉取数据时,传入date值为"“(空)。这样,服务器将识别用户需要所有数据。

2)在上述服务中,请在服务端web-service中添加Date标签。因此,当您获得其他数据时,您还可以获得服务器日期。因此,将此服务器日期存储在本地。

3)下一次,当您获得其他数据时,请传递此存储日期(将采用服务器格式和时区),这样服务器将只提供在此数据之后新添加或修改的数据。

4)这样你就可以处理日期问题了。而且也不会有当地时间或时区的问题。

请复习以上几点,如有疑问请告诉我。

我已经在我的大多数应用程序中实现了这一点,它工作得很好。

对于UTC日期,您可以使用以下函数:

代码语言:javascript
复制
-(NSString *)getUTCFormateDate
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
    [dateFormatter setTimeZone:timeZone];
    [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
    //NSLog(@"UTC Date = %@",dateString);

    return dateString;
}

我希望它能对你有所帮助。

谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6733188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档