从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开头。'。
我尝试了不同的日期格式。
答案 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];
}