Fixed rfc3339 formats to work with all localizations (#7066)
* Amend rfc3339 formats to work with all localizations Changed time separator ":" to "\:" to prevent it from being substituted with a localized separtor. For example in it-IT locale, datetime-local was formatted as 2017-11-19T22.52.29.223 instead of correct format 2017-11-19T22:52:29.223
This commit is contained in:
parent
86ef25e007
commit
ee5535203e
|
|
@ -60,9 +60,9 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers
|
|||
new Dictionary<string, string>(StringComparer.Ordinal)
|
||||
{
|
||||
{ "date", "{0:yyyy-MM-dd}" },
|
||||
{ "datetime", "{0:yyyy-MM-ddTHH:mm:ss.fffK}" },
|
||||
{ "datetime-local", "{0:yyyy-MM-ddTHH:mm:ss.fff}" },
|
||||
{ "time", "{0:HH:mm:ss.fff}" },
|
||||
{ "datetime", @"{0:yyyy-MM-ddTHH\:mm\:ss.fffK}" },
|
||||
{ "datetime-local", @"{0:yyyy-MM-ddTHH\:mm\:ss.fff}" },
|
||||
{ "time", @"{0:HH\:mm\:ss.fff}" },
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -348,13 +348,13 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
|
|||
|
||||
public static IHtmlContent DateTimeOffsetTemplate(IHtmlHelper htmlHelper)
|
||||
{
|
||||
ApplyRfc3339DateFormattingIfNeeded(htmlHelper, "{0:yyyy-MM-ddTHH:mm:ss.fffK}");
|
||||
ApplyRfc3339DateFormattingIfNeeded(htmlHelper, @"{0:yyyy-MM-ddTHH\:mm\:ss.fffK}");
|
||||
return GenerateTextBox(htmlHelper, inputType: "text");
|
||||
}
|
||||
|
||||
public static IHtmlContent DateTimeLocalInputTemplate(IHtmlHelper htmlHelper)
|
||||
{
|
||||
ApplyRfc3339DateFormattingIfNeeded(htmlHelper, "{0:yyyy-MM-ddTHH:mm:ss.fff}");
|
||||
ApplyRfc3339DateFormattingIfNeeded(htmlHelper, @"{0:yyyy-MM-ddTHH\:mm\:ss.fff}");
|
||||
return GenerateTextBox(htmlHelper, inputType: "datetime-local");
|
||||
}
|
||||
|
||||
|
|
@ -366,7 +366,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
|
|||
|
||||
public static IHtmlContent TimeInputTemplate(IHtmlHelper htmlHelper)
|
||||
{
|
||||
ApplyRfc3339DateFormattingIfNeeded(htmlHelper, "{0:HH:mm:ss.fff}");
|
||||
ApplyRfc3339DateFormattingIfNeeded(htmlHelper, @"{0:HH\:mm\:ss.fff}");
|
||||
return GenerateTextBox(htmlHelper, inputType: "time");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1190,7 +1190,7 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers
|
|||
tagHelper.For.ModelExplorer,
|
||||
tagHelper.For.Name,
|
||||
null, // value
|
||||
"{0:yyyy-MM-ddTHH:mm:ss.fffK}",
|
||||
@"{0:yyyy-MM-ddTHH\:mm\:ss.fffK}",
|
||||
htmlAttributes)) // htmlAttributes
|
||||
.Returns(tagBuilder)
|
||||
.Verifiable();
|
||||
|
|
@ -1213,20 +1213,20 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers
|
|||
[InlineData("Date", Html5DateRenderingMode.CurrentCulture, "{0:d}", "date")] // Format from [DataType].
|
||||
[InlineData("Date", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-dd}", "date")]
|
||||
[InlineData("DateTime", Html5DateRenderingMode.CurrentCulture, null, "datetime-local")]
|
||||
[InlineData("DateTime", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fff}", "datetime-local")]
|
||||
[InlineData("DateTime", Html5DateRenderingMode.Rfc3339, @"{0:yyyy-MM-ddTHH\:mm\:ss.fff}", "datetime-local")]
|
||||
[InlineData("DateTimeOffset", Html5DateRenderingMode.CurrentCulture, null, "text")]
|
||||
[InlineData("DateTimeOffset", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fffK}", "text")]
|
||||
[InlineData("DateTimeOffset", Html5DateRenderingMode.Rfc3339, @"{0:yyyy-MM-ddTHH\:mm\:ss.fffK}", "text")]
|
||||
[InlineData("DateTimeLocal", Html5DateRenderingMode.CurrentCulture, null, "datetime-local")]
|
||||
[InlineData("DateTimeLocal", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fff}", "datetime-local")]
|
||||
[InlineData("DateTimeLocal", Html5DateRenderingMode.Rfc3339, @"{0:yyyy-MM-ddTHH\:mm\:ss.fff}", "datetime-local")]
|
||||
[InlineData("Time", Html5DateRenderingMode.CurrentCulture, "{0:t}", "time")] // Format from [DataType].
|
||||
[InlineData("Time", Html5DateRenderingMode.Rfc3339, "{0:HH:mm:ss.fff}", "time")]
|
||||
[InlineData("Time", Html5DateRenderingMode.Rfc3339, @"{0:HH\:mm\:ss.fff}", "time")]
|
||||
[InlineData("Month", Html5DateRenderingMode.CurrentCulture, "{0:yyyy-MM}", "month")]
|
||||
[InlineData("Month", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM}", "month")]
|
||||
[InlineData("Week", Html5DateRenderingMode.CurrentCulture, null, "week")]
|
||||
[InlineData("Week", Html5DateRenderingMode.Rfc3339, null, "week")]
|
||||
[InlineData("NullableDate", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-dd}", "date")]
|
||||
[InlineData("NullableDateTime", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fff}", "datetime-local")]
|
||||
[InlineData("NullableDateTimeOffset", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fffK}", "text")]
|
||||
[InlineData("NullableDateTime", Html5DateRenderingMode.Rfc3339, @"{0:yyyy-MM-ddTHH\:mm\:ss.fff}", "datetime-local")]
|
||||
[InlineData("NullableDateTimeOffset", Html5DateRenderingMode.Rfc3339, @"{0:yyyy-MM-ddTHH\:mm\:ss.fffK}", "text")]
|
||||
public async Task ProcessAsync_CallsGenerateTextBox_AddsExpectedAttributesForRfc3339(
|
||||
string propertyName,
|
||||
Html5DateRenderingMode dateRenderingMode,
|
||||
|
|
|
|||
Loading…
Reference in New Issue