将日期时间从iPhone应用程序发送到Web服务

时间:2013-04-04 10:41:20

标签: c# ios json nsdate nsdateformatter

从iPhone应用程序,我必须将日期作为参数发送到webservice方法,其中服务器解析逻辑使用C#,.NET和JSON实现。

在我的iPhone应用程序中,我将日期格式化为:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
NSString *myDateString = [dateFormatter stringFromDate:SentOn];

我收到错误:

  

反序列化DashboardDataContract.Contracts.DashboardInputParams类型的对象时出错。 DateTime内容'2013-04-04T12:00:00Z'不以'/ Date('和以')/'结尾的JSON开头。'。

我尝试了不同的日期格式。

3 个答案:

答案 0 :(得分:6)

默认情况下,JSON.Net库将使用ISO Date格式(例如"2012-05-09T00:00:00Z")发出所有日期,但Microsoft的日期JSON格式化程序将使用Microsoft自己的格式“/Date(xxxxxxxxxxxx)/”

发出

你可以试试这个:

unsigned long long time=(([[NSDate date] timeIntervalSince1970])*1000);
NSString* dateTimeTosend= [NSString stringWithFormat:@"/Date(%lld)/",time];

答案 1 :(得分:0)

将NSDate发送到服务器的最有效方法是获取timestamp。您基本上可以通过

获得它
NSTimeInterval timestamp = [[NSDate date] timeInvervalSince1970];

答案 2 :(得分:0)

您可以在NSDate

中创建类别方法
- (NSString *)jsonDateString
{
    NSTimeInterval seconds = [self timeIntervalSince1970];
    return [NSString stringWithFormat:@"/Date(%.0f+0000)/",seconds*1000];

}