【问题标题】:SilverLight, WCf service, Datetime.TodaySilverLight、WCf 服务、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)
  • 好吧,您的问题没有提及您观察到这一点的时间。这是非常关键的信息。您也没有显示任何关于您在客户端所做的事情,这使得您很难为您提供帮助......
  • 这个答案被删除了

标签: c# wcf silverlight datetime timezone


【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 2010-09-12
      相关资源
      最近更新 更多