Xamarin.Forms如何将DatePicker的DateTime转换为Realm的DateTimeOffset?

How to convert DatePicker's DateTime to Realm's DateTimeOffset in Xamarin.Forms?

我有一个 class 是从 RealmObject 继承的,生日是 属性,我用 DatePicker 输入。但 Realm 仅适用于 DateTimeOffset。我怎样才能优雅地转换这一切?

XAML

<DatePicker MinimumDate="01/01/1400"
                        MaximumDate="11/14/2019"
                        Date="{Binding Author.Birthday}" />

Class作者

    public class Author : RealmObject
{
    //[PrimaryKey]
    public string Id { get; set; } = Guid.NewGuid().ToString();
    public string Name { get; set; }
    public string PhotoPath { get; set; }
    [Ignored]
    public Image Photo { get; set; }
    public DateTimeOffset? Birthday { get; set; }
    public IList<Book> Books { get; }
    public bool IsFavorite { get; set; }
}
  1. 在以下的帮助下使用值转换器 this
  2. this
  3. 的帮助下将 DateTime 转换为 DateTimeOffset
  4. 如果您还使用该选择器来显示数据,则需要实现值转换器的 ConvertBack 方法。将 Offset 转换为 DateTime 相当容易返回:offset.DateTime

要深入了解 DateTimeOffset:link