38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
|
using System;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Globalization;
|
|||
|
|
|||
|
namespace Jellyfin.Api.TypeConverters
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Custom datetime parser.
|
|||
|
/// </summary>
|
|||
|
public class DateTimeTypeConverter : TypeConverter
|
|||
|
{
|
|||
|
/// <inheritdoc />
|
|||
|
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
|
|||
|
{
|
|||
|
if (sourceType == typeof(string))
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
return base.CanConvertFrom(context, sourceType);
|
|||
|
}
|
|||
|
|
|||
|
/// <inheritdoc />
|
|||
|
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
|
|||
|
{
|
|||
|
if (value is string dateString)
|
|||
|
{
|
|||
|
if (DateTime.TryParseExact(dateString, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var dateTime))
|
|||
|
{
|
|||
|
return dateTime;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return base.ConvertFrom(context, culture, value);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|