diff --git a/src/GitHub.Api/Helpers/Constants.cs b/src/GitHub.Api/Helpers/Constants.cs index 1f3fbe7022e1bc7cb50830e6626447e49b08ca0f..80a83535740d0b81bf833ca71c855cef242ffa61 100644 --- a/src/GitHub.Api/Helpers/Constants.cs +++ b/src/GitHub.Api/Helpers/Constants.cs @@ -9,6 +9,7 @@ namespace GitHub.Unity public const string UsageFile = "usage.json"; public const string GitInstallPathKey = "GitInstallPath"; public const string TraceLoggingKey = "EnableTraceLogging"; + public const string Iso8601Format = "o"; public static readonly Version MinimumGitVersion = new Version(2, 11, 0); public static readonly Version MinimumGitLfsVersion = new Version(2, 3, 4); diff --git a/src/GitHub.Api/OutputProcessors/LogEntryOutputProcessor.cs b/src/GitHub.Api/OutputProcessors/LogEntryOutputProcessor.cs index 101af58477eb533b6a11dd80dfe1652f15e46b60..b165b82a57e107d5aa7e0040c47e6c4743b17a7b 100644 --- a/src/GitHub.Api/OutputProcessors/LogEntryOutputProcessor.cs +++ b/src/GitHub.Api/OutputProcessors/LogEntryOutputProcessor.cs @@ -329,8 +329,8 @@ namespace GitHub.Unity Summary = summary, Description = description, CommitID = commitId, - TimeString = time.Value.ToString(DateTimeFormatInfo.CurrentInfo), - CommitTimeString = committerTime.Value.ToString(DateTimeFormatInfo.CurrentInfo) + TimeString = time.Value.ToString(Constants.Iso8601Format), + CommitTimeString = committerTime.Value.ToString(Constants.Iso8601Format) }); } diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/ApplicationCache.cs b/src/UnityExtension/Assets/Editor/GitHub.Unity/ApplicationCache.cs index 55c9ffd38870c1d1dacde05e6424aa1814e57911..d96413ef02bc3a446699c7e32920ef3f0b635519 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/ApplicationCache.cs +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/ApplicationCache.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; -using Octokit; using UnityEditor; using UnityEngine; using Application = UnityEngine.Application; @@ -92,7 +92,6 @@ namespace GitHub.Unity private static readonly TimeSpan DataTimeout = TimeSpan.MaxValue; [NonSerialized] private DateTimeOffset? lastUpdatedAtValue; - [NonSerialized] private DateTimeOffset? lastVerifiedAtValue; public event Action CacheInvalidated; @@ -148,14 +147,22 @@ namespace GitHub.Unity { if (!lastUpdatedAtValue.HasValue) { - lastUpdatedAtValue = DateTimeOffset.Parse(LastUpdatedAtString); + DateTimeOffset result; + if (DateTimeOffset.TryParseExact(LastUpdatedAtString, Constants.Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result)) + { + lastUpdatedAtValue = result; + } + else + { + lastUpdatedAtValue = DateTimeOffset.MinValue; + } } return lastUpdatedAtValue.Value; } set { - LastUpdatedAtString = value.ToString(); + LastUpdatedAtString = value.ToString(Constants.Iso8601Format); lastUpdatedAtValue = null; } } @@ -166,14 +173,22 @@ namespace GitHub.Unity { if (!lastVerifiedAtValue.HasValue) { - lastVerifiedAtValue = DateTimeOffset.Parse(LastVerifiedAtString); + DateTimeOffset result; + if (DateTimeOffset.TryParseExact(LastVerifiedAtString, Constants.Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result)) + { + lastVerifiedAtValue = result; + } + else + { + lastVerifiedAtValue = DateTimeOffset.MinValue; + } } return lastVerifiedAtValue.Value; } set { - LastVerifiedAtString = value.ToString(); + LastVerifiedAtString = value.ToString(Constants.Iso8601Format); lastVerifiedAtValue = null; } }