#5516: Changed DefaultDateLocalizationServices.ConvertFromLocalizedDateString() to return DateTimeKind.Utc and added unit test to verify.

Fixes #5516
This commit is contained in:
Daniel Stolt
2015-07-16 22:00:20 +01:00
parent d63119b1e6
commit 3d3d6205b6
3 changed files with 14 additions and 14 deletions

View File

@@ -1,16 +1,8 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Autofac;
using NUnit.Framework;
using Orchard.Localization.Models;
using Orchard.Localization.Services;
using Orchard.Services;
namespace Orchard.Tests.Localization {
@@ -217,6 +209,17 @@ namespace Orchard.Tests.Localization {
Assert.AreEqual(dateTimeLocal, result);
}
[Test]
[Description("DateTime which is DateTimeKind.Local is converted to DateTimeKind.Utc.")]
public void ConvertFromLocalizedDateStringTest01() {
var container = TestHelpers.InitializeContainer("en-US", "GregorianCalendar", TimeZoneInfo.Utc);
var dateTimeLocal = new DateTime(1998, 1, 15);
var dateTimeLocalString = dateTimeLocal.ToShortDateString();
var target = container.Resolve<IDateLocalizationServices>();
var result = target.ConvertFromLocalizedDateString(dateTimeLocalString);
Assert.AreEqual(DateTimeKind.Utc, result.Value.Kind);
}
[Test]
[Description("Converting to Gregorian calendar yields a DateTimeParts instance equivalent to the original DateTime.")]
public void ConvertToSiteCalendarTest01() {

View File

@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Orchard.Localization.Models {
public class DateLocalizationOptions {

View File

@@ -1,9 +1,7 @@
using System;
using System.Globalization;
using Orchard.ContentManagement;
using Orchard.Localization.Models;
using Orchard.Services;
using Orchard.Settings;
namespace Orchard.Localization.Services {
@@ -218,6 +216,9 @@ namespace Orchard.Localization.Services {
}
}
if (options.EnableTimeZoneConversion)
dateValue = DateTime.SpecifyKind(dateValue, DateTimeKind.Utc);
return dateValue;
}