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)
|
new Dictionary<string, string>(StringComparer.Ordinal)
|
||||||
{
|
{
|
||||||
{ "date", "{0:yyyy-MM-dd}" },
|
{ "date", "{0:yyyy-MM-dd}" },
|
||||||
{ "datetime", "{0:yyyy-MM-ddTHH:mm:ss.fffK}" },
|
{ "datetime", @"{0:yyyy-MM-ddTHH\:mm\:ss.fffK}" },
|
||||||
{ "datetime-local", "{0:yyyy-MM-ddTHH:mm:ss.fff}" },
|
{ "datetime-local", @"{0:yyyy-MM-ddTHH\:mm\:ss.fff}" },
|
||||||
{ "time", "{0:HH:mm:ss.fff}" },
|
{ "time", @"{0:HH\:mm\:ss.fff}" },
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -348,13 +348,13 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
|
||||||
|
|
||||||
public static IHtmlContent DateTimeOffsetTemplate(IHtmlHelper htmlHelper)
|
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");
|
return GenerateTextBox(htmlHelper, inputType: "text");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IHtmlContent DateTimeLocalInputTemplate(IHtmlHelper htmlHelper)
|
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");
|
return GenerateTextBox(htmlHelper, inputType: "datetime-local");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -366,7 +366,7 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
|
||||||
|
|
||||||
public static IHtmlContent TimeInputTemplate(IHtmlHelper htmlHelper)
|
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");
|
return GenerateTextBox(htmlHelper, inputType: "time");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1190,7 +1190,7 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers
|
||||||
tagHelper.For.ModelExplorer,
|
tagHelper.For.ModelExplorer,
|
||||||
tagHelper.For.Name,
|
tagHelper.For.Name,
|
||||||
null, // value
|
null, // value
|
||||||
"{0:yyyy-MM-ddTHH:mm:ss.fffK}",
|
@"{0:yyyy-MM-ddTHH\:mm\:ss.fffK}",
|
||||||
htmlAttributes)) // htmlAttributes
|
htmlAttributes)) // htmlAttributes
|
||||||
.Returns(tagBuilder)
|
.Returns(tagBuilder)
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
|
|
@ -1213,20 +1213,20 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers
|
||||||
[InlineData("Date", Html5DateRenderingMode.CurrentCulture, "{0:d}", "date")] // Format from [DataType].
|
[InlineData("Date", Html5DateRenderingMode.CurrentCulture, "{0:d}", "date")] // Format from [DataType].
|
||||||
[InlineData("Date", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-dd}", "date")]
|
[InlineData("Date", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-dd}", "date")]
|
||||||
[InlineData("DateTime", Html5DateRenderingMode.CurrentCulture, null, "datetime-local")]
|
[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.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.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.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.CurrentCulture, "{0:yyyy-MM}", "month")]
|
||||||
[InlineData("Month", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM}", "month")]
|
[InlineData("Month", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM}", "month")]
|
||||||
[InlineData("Week", Html5DateRenderingMode.CurrentCulture, null, "week")]
|
[InlineData("Week", Html5DateRenderingMode.CurrentCulture, null, "week")]
|
||||||
[InlineData("Week", Html5DateRenderingMode.Rfc3339, null, "week")]
|
[InlineData("Week", Html5DateRenderingMode.Rfc3339, null, "week")]
|
||||||
[InlineData("NullableDate", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-dd}", "date")]
|
[InlineData("NullableDate", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-dd}", "date")]
|
||||||
[InlineData("NullableDateTime", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fff}", "datetime-local")]
|
[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("NullableDateTimeOffset", Html5DateRenderingMode.Rfc3339, @"{0:yyyy-MM-ddTHH\:mm\:ss.fffK}", "text")]
|
||||||
public async Task ProcessAsync_CallsGenerateTextBox_AddsExpectedAttributesForRfc3339(
|
public async Task ProcessAsync_CallsGenerateTextBox_AddsExpectedAttributesForRfc3339(
|
||||||
string propertyName,
|
string propertyName,
|
||||||
Html5DateRenderingMode dateRenderingMode,
|
Html5DateRenderingMode dateRenderingMode,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue