将JSON datetime读入C#-datetime时出错
注意*我知道第二个方法有不同的名称,但“getCommissionByStatusID”方法只是将其传递给“getExportAudition”,而不做任何操作 当从MVC应用程序传递服务时,我在.Net C#类中得到不同的日期时间。我以前搜索过,但我不熟悉JSON,所以不太确定我需要看什么 下面是调用该服务的MVC代码。“委托搜索”对象导致问题。所以这里它被序列化了将JSON datetime读入C#-datetime时出错,c#,asp.net-mvc,C#,Asp.net Mvc,注意*我知道第二个方法有不同的名称,但“getCommissionByStatusID”方法只是将其传递给“getExportAudition”,而不做任何操作 当从MVC应用程序传递服务时,我在.Net C#类中得到不同的日期时间。我以前搜索过,但我不熟悉JSON,所以不太确定我需要看什么 下面是调用该服务的MVC代码。“委托搜索”对象导致问题。所以这里它被序列化了 public IEnumerable<ConsignmentInfo> LoadConsignmentByStatu
public IEnumerable<ConsignmentInfo> LoadConsignmentByStatusId(int userId, int companyId, string language, int statusId, int pageNumber, int pageSize, ConsignmentSearch search)
{
IEnumerable<ConsignmentInfo> consignmentInfo = null;
var serializer = new JavaScriptSerializer();
string jsonInput = serializer.Serialize(search);
var content = new StringContent(jsonInput, Encoding.UTF8, "application/json");
HttpResponseMessage response = Client.PostAsync(
string.Format("Consignment/GetConsignmentByStatusId?userId={0}&companyId={1}&language={2}&pageNumber={3}&numRecs={4}&statusId={5}", userId, companyId, language, pageNumber, pageSize, statusId)
, content).Result;
if (response.IsSuccessStatusCode)
{
consignmentInfo = response.Content.ReadAsAsync<IEnumerable<ConsignmentInfo>>().Result;
}
else
{
throw new Exception(response.ReasonPhrase);
}
return consignmentInfo;
}
public IEnumerable LoadCommitmentByStatusID(int用户ID、int公司ID、字符串语言、int状态ID、int页码、int页面大小、委托搜索)
{
IEnumerable委托信息=null;
var serializer=新的JavaScriptSerializer();
字符串jsonInput=serializer.Serialize(搜索);
var content=newstringcontent(jsonInput,Encoding.UTF8,“application/json”);
HttpResponseMessage响应=Client.PostAsync(
string.Format(“寄售/GetCommissionByStatusID?用户ID={0}&companyId={1}&language={2}&pageNumber={3}&numRecs={4}&statusId={5}”,用户ID,公司ID,语言,页码,页面大小,statusId)
结果;
if(响应。IsSuccessStatusCode)
{
委托信息=response.Content.ReadAsAsync().Result;
}
其他的
{
抛出新异常(response.ReasonPhrase);
}
退货寄售信息;
}
这是服务中代码的一部分。此对象中有2个日期时间字段
这与传递的东西总是不同的。我需要做什么来读取正确的日期?任何帮助或链接将不胜感激
public static IEnumerable<ConsignmentInfo> GetExportConsignment(int userId, int companyId, string locale, ConsignmentSearch search, int pageNumber, int numRecs, int statusId)
{
var consignmentStatusList = new List<ConsignmentInfo>();
SQLDataAccess db = DatabaseFactory.CreateDatabase(GlobalsManager.DbConnectionString) as SQLDataAccess;
DbCommand cmd = db.GetStoredProcCommand("Logistics.spGTSConnectGetExportConsignment");
db.AddInParameter(cmd, "UserId", DbType.Int32, userId);
db.AddInParameter(cmd, "CompanyId", DbType.Int32, companyId);
db.AddInParameter(cmd, "Locale", DbType.String, locale);
if (!string.IsNullOrEmpty(search.ConsignmentNumber))
{
db.AddInParameter(cmd, "ConsignmentNumber", DbType.String, search.ConsignmentNumber);
}
if (!string.IsNullOrEmpty(search.HouseWaybillNumber))
{
db.AddInParameter(cmd, "HouseBillNumber", DbType.String, search.HouseWaybillNumber);
}
if (search.DateOfLoadingFrom != null)
{
db.AddInParameter(cmd, "DateOfLoadingFrom", DbType.DateTime, search.DateOfLoadingFrom);
}
public static IEnumerable getExportBatching(int userId、int companyId、字符串区域设置、委托搜索、int pageNumber、int numRecs、int statusId)
{
var委托状态列表=新列表();
SQLDataAccess db=DatabaseFactory.CreateDatabase(GlobalsManager.DbConnectionString)作为SQLDataAccess;
DbCommand cmd=db.GetStoredProcCommand(“Logistics.spgtsconnectgetexport寄售”);
db.AddInParameter(cmd,“UserId”,DbType.Int32,UserId);
db.AddInParameter(cmd,“CompanyId”,DbType.Int32,CompanyId);
AddInParameter(cmd,“Locale”,DbType.String,Locale);
如果(!string.IsNullOrEmpty(search.CommissionNumber))
{
db.AddInParameter(cmd,“委托编号”,DbType.String,search.委托编号);
}
如果(!string.IsNullOrEmpty(search.housayBillNumber))
{
AddInParameter(cmd,“HouseBillNumber”,DbType.String,search.HouseBillNumber);
}
if(search.DateOfLoadingFrom!=null)
{
db.AddInParameter(cmd,“DateOfLoadingFrom”,DbType.DateTime,search.DateOfLoadingFrom);
}
如果您使用JS向服务请求/发送数据,可以使用以下脚本在JSON上确定日期:
function convertJsonDate(dateString) {
var date = new Date(dateString.match(/\d+/)[0] * 1);
var dd = date.getDate()
if (dd < 10) dd = '0' + dd
var mm = date.getMonth() + 1 // now moths are 1-12
if (mm < 10) mm = '0' + mm
var yy = date.getFullYear()
if (yy < 100) yy = '20' + yy
return mm + '/' + dd + '/' + yy;
}
函数convertJsonDate(日期字符串){
变量日期=新日期(dateString.match(/\d+/)[0]*1);
var dd=date.getDate()
如果(dd<10)dd='0'+dd
var mm=date.getMonth()+1//现在蛾类为1-12
如果(毫米<10)毫米='0'毫米+毫米
var yy=date.getFullYear()
如果(yy<100)yy='20'+yy
返回mm+'/'+dd+'/'+yy;
}
我找到了一个解决方案,就在这里
我添加了以下方法
JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
};
然后将LoadCommitmentByStatusID方法更改为
public IEnumerable<ConsignmentInfo> LoadConsignmentByStatusId(int userId, int companyId, string language, int statusId, int pageNumber, int pageSize, ConsignmentSearch search)
{
IEnumerable<ConsignmentInfo> consignmentInfo = null;
var content = new StringContent(JsonConvert.SerializeObject(search, microsoftDateFormatSettings), Encoding.UTF8, "application/json");
public IEnumerable LoadCommitmentByStatusID(int用户ID、int公司ID、字符串语言、int状态ID、int页码、int页面大小、委托搜索)
{
IEnumerable委托信息=null;
var content=new-StringContent(JsonConvert.SerializeObject(搜索,microsoftDateFormatSettings),Encoding.UTF8,“application/json”);
JSON中的值如何以及它们在服务参数中如何?这是两个日期(2014年1月1日至1月10日)l的JSON,“DateOfLadingFrom\:\”\“\/(1388527200)\/”,“DateOfLadingTo\”:\“\/(138930480000)\/”,这是起始日期-{2013/12/31 10:00:00 PM{2014/01/09 10:00:00 PM}。您找到解决方案了吗?