【问题标题】:Saving DateTime in Datacontext sets wrong milliseconds在 Datacontext 中保存 DateTime 设置错误的毫秒数
【发布时间】:2013-07-10 09:51:30
【问题描述】:

我正在构建一个需要毫秒精度的 Windows Phone 8 应用程序。数据上下文如下: 私人日期时间_date;

    [Column]
    public DateTime Date
    {
        get { return _date; }
        set
        {
            NotifyPropertyChanging("ItemDate");
            _date= value;
            NotifyPropertyChanged("ItemDate");
        }
    }

关于这个问题:Milliseconds wrong when converting from XML to SQL Server datetime 我知道 DataContext 可能面临类似的问题。更具体地说,DataContext 的毫秒返回值有时会高或低 1 毫秒 - 取决于滴答数。

所以唯一的解决方案是将 Int64 中的 DateTime 保存为毫秒?有没有其他更好的办法解决?

【问题讨论】:

    标签: c# windows-phone-8 datacontext


    【解决方案1】:

    如果您需要使用这些数据执行计算,您需要自己做一些事情。在内部,DateTime 将 Milliseconds 存储为 Int32,因此 应该 就足够了。

    如果您只是显示这些数据,而不是依赖 DateTime 类的基础属性和行为。您不能将其存储/显示为字符串吗?

    【讨论】:

    • 将其存储为字符串显然不是一种选择,因为正在现场执行操作。我所做的实际上是将自 1970 年以来的毫秒作为 int64 存储到数据库中,然后使用一些转换器在需要时将它们转换为“人类可读的形式”。
    • 标记为已回答 - 我之前评论中的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2016-03-15
    • 2014-08-07
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多