经过AFNetworking获取服务器时间

在一些场合,咱们须要获取服务器的时间,计算该时间与客户端本地时间的差值,以利于时间同步。有人说,这个不是很简单吗,让后台的TX给你一个获取服务器时间的接口就好了。git

其实这个仍是比较麻烦的,更简单的是利用HTTP Header来获取服务器时间——每一个HTTP header的Date参数就是这个时间。在iOS中咱们一般用AFNetworking发请求,那么用AFNetworking怎么获得HTTP header信息呢?github

很简单,用 [[operation response] allHeaderFields]   就行。服务器

后记:code

我仍是想得太简单了,在iOS中想把上图中HTTP头的时间换成NSDate,怎么试都不行,后来才发现,虽然你可能指定时间为"EEE, d MMM yyyy HH:mm:ss zzz",但还须要额外的设置。orm

最后,找到了一份开源的代码解决了此问题:https://github.com/mwaterfall/MWFeedParser/blob/master/Classes/NSDate+InternetDateTime.m(ARC) 接口

使用方法:get

NSDate* inputDate = [NSDate dateFromInternetDateTimeString:dateServer formatHint:DateFormatHintRFC822];

或者:input

NSDate* inputDate = [NSDate dateFromRFC822String:dateServer];


参考:http://stackoverflow.com/questions/12351464/reading-afnetworking-response-headers同步