예제 #1
0
        public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
        {
            if (value is LocalDateTime ldt)
            {
                return(ldt);
            }
            if (value is LocalDate ld)
            {
                return(ld.AtMidnight());
            }
            if (value is DateTime d && d == d.Date)
            {
                return(LocalDate.FromDateTime(d));
            }
            if (value is string s)
            {
                var r = _pattern.WithCulture(culture ?? CultureInfo.InvariantCulture).Parse(s);
                if (r.Success)
                {
                    return(r.Value);
                }
                // little hack, not the finest, but should work
                if (DateTime.TryParse(s, out var dt))
                {
                    return(LocalDateTime.FromDateTime(dt));
                }
            }


            return(base.ConvertFrom(context, culture, value));
        }