我在服务器上发布日期时间值后将其更改,然后将其接收回来,

时间:2018-11-25 14:39:28

标签: asp.net date datetime time xamarin.forms

我使用DateTime.Now方法获取计算机上的本地时间,然后将其与模型一起发布到ASP.NET服务器。

我发布的DateTime值是:

The DateTime value i post

我从服务器获得的DateTime值是:

The DateTime value i get from server

因此,如您在屏幕截图中所见,两个值是不同的。我的问题是它们应该相同。

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(哈萨克斯坦,阿斯塔纳)

0 个答案:

没有答案