首页 > 解决方案 > DatePicker 值在 SQLite Xamarin.Forms 中保存为错误日期

问题描述

型号代码:

public DateTime date { get; set; }

视图模型代码:

public DateTime date
{
    get => Model.date;
    set
    {
        Model.date = value;
        NotifyPropertyChanged("date");
    }
}

XAML 代码:

 <DatePicker Date="{Binding date}" Format=" MMM d, yyyy"  />

SQL插入代码:

public void InsertDevotion(Object obj)
{
    sqliteconnection.Insert(obj);
}

保存 DateTime 对象时,日期晚了一天。前任。日期选择器中的 2018 年 7 月 12 日,然后在执行 insertToDb 方法后,日期将在列表中显示为 2018 年 7 月 11 日。任何人?

标签: sqlitexamarin.forms

解决方案


在您的财产中,

public DateTime date
{
    get => Model.date.ToLocalTime();
    set
    {
        Model.date = value;
        NotifyPropertyChanged("date");
    }
}

您面临的问题是因为 TimeZones,以及 SQLite 如何保存日期对象。如果您在从数据库加载后转换为本地时间,您应该没有任何问题。


推荐阅读