SilverLight、WCf 服务、Datetime.Today

Posted

技术标签:

【中文标题】SilverLight、WCf 服务、Datetime.Today【英文标题】:SilverLight, WCf service, Datetime.Today 【发布时间】:2015-05-23 15:42:49 【问题描述】:

我有 SilverLight 应用程序和 wcf 服务。 我有模特

public class MyModel

        public DateTime MyDate get;set; 
        ...

在服务器端我做了:

MyModel.MyDate = DateTime.ToDay

并将模型返回给客户端

在客户端

var taskGet = await _context.Load(_context.GetMyModelQuery()).AsTask();
MyModel= taskGet .Entities.FirstOrDefault();

服务器和客户端在不同的时区 服务器有 +8h 到 UTC 客户有 +3H(我的浏览器)UTC

在服务器上 DateTime.ToDay 返回 20/03/2015

但在客户端我有 19/03/2015

为什么会这样?

【问题讨论】:

好吧,你自己已经解释过了——它们在两个不同的时区,所以它们很容易观察到两个不同的日子...... 这不正常吗?由于TodayDateTime 返回为Local,因此您的日期也可以不同。 不正常。数据现在在服务器上 20/03/2015 5:24 pm。我电脑上的数据是 20/03/2015 12:24 pm,我的浏览器显示 -1 day (19/03/2015) 好吧,您的问题没有提及您观察到这一点的时间。这是非常关键的信息。您也没有显示任何关于您在客户端所做的事情,这使得您很难为您提供帮助...... 这个答案被删除了 【参考方案1】:

我找到了临时解决方案。

var myDate = DateTime.SpecifyKind(DateTime.Today, DateTimeKind.Unspecified);

【讨论】:

【参考方案2】:

在客户端,

<sdk:DatePicker SelectedDate="Binding MyDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnNotifyDataErrors=True, NotifyOnValidationError=True" />

MyDate = MyModel.Mydate;

【讨论】:

以上是关于SilverLight、WCf 服务、Datetime.Today的主要内容,如果未能解决你的问题,请参考以下文章

WCF(Silverlight)双工 - 不打服务器

Silverlight 启用 WCF 服务、Web 服务、ADO.NET 数据服务

WCF Silverlight 跨域问题

获取 Silverlight 5 WCF 服务的完整异常跟踪

Silverlight 应用程序的 Azure WorkerRole 中的 WCF 服务

带有 WCF 服务的 Silverlight 3 -