diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/TimeOnlyConverter.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/TimeOnlyConverter.cs index bd2c40c8a07ca..82fc1ad6ac952 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/TimeOnlyConverter.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/TimeOnlyConverter.cs @@ -10,7 +10,7 @@ namespace System.Text.Json.Serialization.Converters { internal sealed class TimeOnlyConverter : JsonPrimitiveConverter { - private const int MinimumTimeOnlyFormatLength = 8; // hh:mm:ss + private const int MinimumTimeOnlyFormatLength = 3; // h:m private const int MaximumTimeOnlyFormatLength = 16; // hh:mm:ss.fffffff private const int MaximumEscapedTimeOnlyFormatLength = JsonConstants.MaxExpansionFactorWhileEscaping * MaximumTimeOnlyFormatLength; diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/Value.ReadTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/Value.ReadTests.cs index 95a2cde389cf0..9d797c465b716 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/Value.ReadTests.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/Value.ReadTests.cs @@ -488,6 +488,11 @@ private static void DeserializeLongJsonString(int stringLength) } [Theory] + [InlineData("1:2")] + [InlineData("01:2")] + [InlineData("1:02")] + [InlineData("01:23:1")] + [InlineData("1.1:1:1.0")] [InlineData("1:00:00")] [InlineData("1")] [InlineData("10")] @@ -654,6 +659,12 @@ public static void DateOnly_Read_Failure(string json, bool addQuotes = true) } [Theory] + [InlineData("1:2", "01:02")] + [InlineData("01:2", "01:02")] + [InlineData("01:23:1", "01:23:01")] + [InlineData("1:00:00")] // 'g' Format + [InlineData("00:00")] + [InlineData("23:59")] [InlineData("23:59:59")] [InlineData("23:59:59.9", "23:59:59.9000000")] [InlineData("02:48:05.4775807")] @@ -680,8 +691,9 @@ public static void TimeOnly_Read_Nullable_Tests() } [Theory] - [InlineData("00:00")] - [InlineData("23:59")] + [InlineData("0")] + [InlineData("01")] + [InlineData("01:")] [InlineData("\t23:59:59")] // Otherwise valid but has invalid json character [InlineData("\\t23:59:59")] // Otherwise valid but has leading whitespace [InlineData("23:59:59 ")] // Otherwise valid but has trailing whitespace @@ -693,7 +705,6 @@ public static void TimeOnly_Read_Nullable_Tests() [InlineData("900000000.00:00:00")] [InlineData("1.00:00:00")] [InlineData("0.00:00:00")] - [InlineData("1:00:00")] // 'g' Format [InlineData("1:2:00:00")] // 'g' Format [InlineData("+00:00:00")] [InlineData("2021-06-18")]