|
|
@ -1005,7 +1005,7 @@ namespace Emby.XmlTv.Classes
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static Regex _regDateWithOffset = new Regex(@"^(?<dateDigits>[0-9]{4,14})(\s(?<dateOffset>[+-]*[0-9]{1,4}))?$");
|
|
|
|
public const string _regDateWithOffset = @"^(?<dateDigits>[0-9]{4,14})(\s(?<dateOffset>[+-]*[0-9]{1,4}))?$";
|
|
|
|
|
|
|
|
|
|
|
|
public DateTimeOffset? ParseDate(string dateValue)
|
|
|
|
public DateTimeOffset? ParseDate(string dateValue)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -1018,15 +1018,15 @@ namespace Emby.XmlTv.Classes
|
|
|
|
'200007281733 BST', '200209', '19880523083000 +0300'. (BST == +0100.)
|
|
|
|
'200007281733 BST', '200209', '19880523083000 +0300'. (BST == +0100.)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
DateTimeOffset? result = null;
|
|
|
|
if (string.IsNullOrEmpty(dateValue))
|
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(dateValue))
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var completeDate = "20000101000000";
|
|
|
|
var completeDate = "20000101000000";
|
|
|
|
var dateComponent = string.Empty;
|
|
|
|
var dateComponent = string.Empty;
|
|
|
|
var dateOffset = "+00:00";
|
|
|
|
var dateOffset = "+00:00";
|
|
|
|
|
|
|
|
var match = Regex.Match(dateValue, _regDateWithOffset);
|
|
|
|
var match = _regDateWithOffset.Match(dateValue);
|
|
|
|
|
|
|
|
if (match.Success)
|
|
|
|
if (match.Success)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
dateComponent = match.Groups["dateDigits"].Value;
|
|
|
|
dateComponent = match.Groups["dateDigits"].Value;
|
|
|
@ -1051,17 +1051,14 @@ namespace Emby.XmlTv.Classes
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var standardDate = string.Format("{0} {1}", dateComponent, dateOffset);
|
|
|
|
var standardDate = string.Format("{0} {1}", dateComponent, dateOffset);
|
|
|
|
if (DateTimeOffset.TryParseExact(standardDate, "yyyyMMddHHmmss zzz", CultureInfo.CurrentCulture, DateTimeStyles.None, out var parsedDateTime))
|
|
|
|
if (DateTimeOffset.TryParseExact(standardDate, "yyyyMMddHHmmss zzz", CultureInfo.CurrentCulture, DateTimeStyles.None, out DateTimeOffset parsedDateTime))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return parsedDateTime.ToUniversalTime();
|
|
|
|
return parsedDateTime.ToUniversalTime();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
//Logger.LogWarning("Unable to parse the date {0} from standardised form {1}", dateValue, standardDate);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
// Logger.LogWarning("Unable to parse the date {0} from standardised form {1}", dateValue, standardDate);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string StandardiseDate(string value)
|
|
|
|
public string StandardiseDate(string value)
|
|
|
@ -1070,7 +1067,7 @@ namespace Emby.XmlTv.Classes
|
|
|
|
var dateComponent = string.Empty;
|
|
|
|
var dateComponent = string.Empty;
|
|
|
|
var dateOffset = "+0000";
|
|
|
|
var dateOffset = "+0000";
|
|
|
|
|
|
|
|
|
|
|
|
var match = _regDateWithOffset.Match(value);
|
|
|
|
var match = Regex.Match(value, _regDateWithOffset);
|
|
|
|
if (match.Success)
|
|
|
|
if (match.Success)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
dateComponent = match.Groups["dateDigits"].Value;
|
|
|
|
dateComponent = match.Groups["dateDigits"].Value;
|
|
|
|