From 582cbe91574ed12096c0a817e0b090a50ac92b04 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Thu, 21 May 2020 13:59:09 -0400 Subject: [PATCH] fix: Temp fix for annoying CompiledOn DateTime parsing bug --- ICD.Common.Utils/ProgramUtils.SimplSharp.cs | 28 ++++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/ICD.Common.Utils/ProgramUtils.SimplSharp.cs b/ICD.Common.Utils/ProgramUtils.SimplSharp.cs index dfc3aa5..8b55dd7 100644 --- a/ICD.Common.Utils/ProgramUtils.SimplSharp.cs +++ b/ICD.Common.Utils/ProgramUtils.SimplSharp.cs @@ -1,4 +1,5 @@ -using ICD.Common.Utils.IO; +using System.Globalization; +using ICD.Common.Utils.IO; using ICD.Common.Utils.Services; using ICD.Common.Utils.Services.Logging; #if SIMPLSHARP @@ -46,9 +47,28 @@ namespace ICD.Common.Utils get { string dateString; - return ProgComments.TryGetValue(COMPILED_ON_KEY, out dateString) - ? DateTime.Parse(dateString).ToUniversalTime() - : DateTime.MinValue; + if (!ProgComments.TryGetValue(COMPILED_ON_KEY, out dateString)) + return DateTime.MinValue; + + // Crestron writes compile time in system local time with no sense of localization... + try + { + return DateTime.Parse(dateString).ToUniversalTime(); + } + catch (FormatException) + { + } + + // Try again with dd/mm/yyyy + try + { + return DateTime.ParseExact(dateString, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture).ToUniversalTime(); + } + catch (FormatException) + { + } + + return DateTime.MinValue; } }