【发布时间】:2015-08-18 14:04:22
【问题描述】:
当我在 json 对象中有数据时间时遇到问题,它会将其转换为 C# 中的 UTC 时区 dateTime 只是想问如何保持本地时间?我可以在 web.config 文件或 geter 或 setter 中设置时区属性吗?我必须可以反对有日期和时间? 这是类示例?
public class Patient
{
public long RecordId { get; set; }
public string Username { get; set; }
public DateTime Date
{
get;
set;
}
public bool Deleted { get; set; }
public string ModifiedBy { get; set; }
public DateTime ModifiedOn { get; set; }
public string CreatedBy { get; set; }
public DateTime CreatedOn { get; set; }
}
更新我尝试使用 getter 和 setter 来修复我有这个异常{Cannot evaluate expression because the current thread is in a stack overflow state.}
[System.Web.Http.Route("api/postpatientform")]
public HttpResponseMessage PostPatientForm(PatientViewModel form)
{
using (var db = new AthenaContext())
{
try
{
var form2 = Mapper.Map<Patient>(form);
db.Patient.Add(form2);
db.SaveChanges();
var newId = form2.RecordId;
foreach (var activity in form.PatientActivities)
{
activity.PatientId = newId;
db.NonPatientActivities.Add(Mapper.Map<PatientActivity>(activity));
}
db.SaveChanges();
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
}
return Request.CreateResponse<Patient>(HttpStatusCode.Created, null);
}
【问题讨论】:
-
您使用哪种方法/库进行 json 序列化?
-
我们不使用 json 序列化只是 Web Api 到 json 对象到 poco 对象 c#?
-
您进行了递归调用。创建一个单独的属性以进行转换。或者解压到其他地方
-
你给 Web API 提供什么输入?应该由那个来确定。例如:
2015-08-18T17:30:31是Unspecified,2015-08-18T17:30:31Z是Utc,2015-08-18T17:30:31+03:00是Local -
你能解释更多吗?