我使用DateTime.Now
方法获取计算机上的本地时间,然后将其与模型一起发布到ASP.NET服务器。
我发布的DateTime
值是:
我从服务器获得的DateTime
值是:
因此,如您在屏幕截图中所见,两个值是不同的。我的问题是它们应该相同。
ASP.Net服务器上的Post方法:
public async Task<IHttpActionResult> PostTimeCap(TimeCap timeCap)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
List<TimeCap> l = db.TimeCaps.ToList();
TimeCap lastCap;
if (l.Count > 0)
{
lastCap = l[l.Count - 1];
for (int i = l.Count - 1; i >= 0; i--)
{
if (l[i].userind == timeCap.userind && lastCap.date < l[i].date && !l[i].isPairDefined)
{
lastCap = l[i];
}
}
}
else
{
lastCap = null;
}
if (timeCap.typeOfCap == "open")
{
}
else if(timeCap.typeOfCap == "overwork")
{
}
else if(timeCap.typeOfCap == "close")
{
if (lastCap != null)
{
if (lastCap.typeOfCap == "open" || lastCap.typeOfCap == "overwork")
{
timeCap.isPairDefined = true;
timeCap.pairIndex = lastCap.id;
lastCap.isPairDefined = true;
await PutTimeCap(lastCap.id, lastCap);
double totalSec = (timeCap.date - lastCap.date).TotalSeconds;
totalSec = totalSec / 3600;
timeCap.workhours = (float)totalSec;
}
else
{
//DeleteTimeCap(lastCap.id);
//TimeCap lc = FindLastCap(timeCap.userind);
//timeCap.isPairDefined = true;
//timeCap.pairIndex = lc.id;
}
}
}
db.TimeCaps.Add(timeCap);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = timeCap.id }, timeCap);
}
服务器上的Get方法:
public IQueryable<TimeCap> GetTimeCaps()
{
return db.TimeCaps;
}
在客户端上:
TimeCap t = new TimeCap
{
date = DateTime.Now,
typeOfCap = "overwork",
userind = DataStaticStorage.userId,
isPairDefined = false,
isVerifyed = false,
pairIndex = 0,
imgIndex = imgstr,
workhours = 0f
};
当我从服务器获取时:
t.dateStr = tp[i].date.ToString("F");
我需要发布一个日期时间,然后将其原封不动地寄回。
我想念关于DateTime
和Asp.net的大量知识吗?
我的当地时间是格林尼治标准时间+6(哈萨克斯坦,阿斯塔纳)