Iphone MS-SQL SmallDateTime到NSDate问题

Iphone MS-SQL SmallDateTime到NSDate问题,iphone,xcode,json,wcf,ios6,Iphone,Xcode,Json,Wcf,Ios6,in-am当前使用的应用程序是一个iPhone应用程序,后端在.Net中。iPhone应用程序使用WCF RestFul API。服务器使用的数据库是MS SQL,而objective-cxcode4.5中的客户端是iOS6。我在服务器端以smallDateTime的形式存储日期。在以JSON格式获取此日期时,我使用下面提到的代码将其转换为NSDate 以下是用于转换的iPhone端代码 + (NSDate *)convertServerDateToNSDate:(NSString *)serv

in-am当前使用的应用程序是一个iPhone应用程序,后端在.Net中。iPhone应用程序使用WCF RestFul API。服务器使用的数据库是MS SQL,而objective-cxcode4.5中的客户端是iOS6。我在服务器端以smallDateTime的形式存储日期。在以JSON格式获取此日期时,我使用下面提到的代码将其转换为NSDate

以下是用于转换的iPhone端代码

+ (NSDate *)convertServerDateToNSDate:(NSString *)serverDate
{
    serverDate = [serverDate stringByReplacingOccurrencesOfString:@"\"" withString:@""];
    serverDate = [serverDate stringByReplacingOccurrencesOfString:@"\\" withString:@""];
    if(serverDate == nil)
    return nil;

    NSDate * nsDate;

    NSCharacterSet * tempSet1 = [NSCharacterSet characterSetWithCharactersInString:@"("];

    serverDate = [serverDate stringByReplacingOccurrencesOfString:@"-" withString:@"+"];

    NSCharacterSet * tempSet2 = [NSCharacterSet characterSetWithCharactersInString:@"+"];

    NSRange startRange = [serverDate rangeOfCharacterFromSet:tempSet1];
    NSRange endRange = [serverDate rangeOfCharacterFromSet:tempSet2];
    NSRange actualRange;
    actualRange.location = startRange.location + 1;
    actualRange.length = endRange.location - actualRange.location;

    NSString * tempString = [serverDate substringWithRange:actualRange];
    double timeInSecs = [tempString doubleValue]/1000;

    nsDate = [NSDate dateWithTimeIntervalSince1970:timeInSecs];
    return nsDate;
}
在iOS Simulator 6.0上,日期转换非常完美,但在我的ipod上,日期转换要少一天。我试着搜索它,自己做,但每次我都比实际日期少1天

1有什么问题

2我如何解决它

3我确保模拟器和iPod上的语言环境是相同的


在此方面的任何帮助都将不胜感激。

模拟器和您的iPodTouch之间的时间不安全性相同吗?1356535379192是iPod的tempString,1356535441441是模拟器的tempString。对于相同的服务器日期?然后,检查所有的局部变量,你就能自己找到原因。对同一个serverDate是的,但我在这里没有使用任何特定于iPod的变量。我找到了一个解决方案,它可以在iPhone上正常工作。仍然无法在iPod上正常工作。