Exemplo n.º 1
0
        public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
        {
            if (value is LocalTime lt)
            {
                return(lt);
            }
            if (value is string s)
            {
                var res = _pattern.WithCulture(culture ?? CultureInfo.InvariantCulture).Parse(s);
                if (res.Success)
                {
                    return(res.Value);
                }
                // little hack, not the finest, but should work
                if (DateTime.TryParse(s, out var d))
                {
                    return(LocalTime.FromTicksSinceMidnight((d - d.Date).Ticks));
                }
            }
            if (value is DateTime dt)
            {
                return(LocalTime.FromTicksSinceMidnight((dt - dt.Date).Ticks));
            }

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