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
为什么会这样?
【问题讨论】:
好吧,你自己已经解释过了——它们在两个不同的时区,所以它们很容易观察到两个不同的日子...... 这不正常吗?由于Today
将DateTime
返回为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的主要内容,如果未能解决你的问题,请参考以下文章
Silverlight 启用 WCF 服务、Web 服务、ADO.NET 数据服务
获取 Silverlight 5 WCF 服务的完整异常跟踪