From e129c60465301a8bb86360a5ca501ae4026ebce4 Mon Sep 17 00:00:00 2001 From: brianlagunas_cp Date: Tue, 18 Oct 2011 16:00:33 +0000 Subject: [PATCH] DateTimeParser: now correctly parses SortableDateTime and UniversalSortableDateTime formats --- .../Implementation/DateTimeParser.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimeUpDown/Implementation/DateTimeParser.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimeUpDown/Implementation/DateTimeParser.cs index af26499d..d27dc3c1 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimeUpDown/Implementation/DateTimeParser.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimeUpDown/Implementation/DateTimeParser.cs @@ -33,6 +33,8 @@ namespace Microsoft.Windows.Controls string designator = ""; string[] dateTimeSeparators = new string[] { ",", " ", "-", ".", "/", cultureInfo.DateTimeFormat.DateSeparator, cultureInfo.DateTimeFormat.TimeSeparator }; + ResolveSortableDateTimeString(ref dateTime, ref format, cultureInfo); + var dateTimeParts = dateTime.Split(dateTimeSeparators, StringSplitOptions.RemoveEmptyEntries).ToList(); var formats = format.Split(dateTimeSeparators, StringSplitOptions.RemoveEmptyEntries).ToList(); @@ -73,6 +75,20 @@ namespace Microsoft.Windows.Controls return String.Format("{0} {1} {2}", date, time, designator); } + private static void ResolveSortableDateTimeString(ref string dateTime, ref string format, CultureInfo cultureInfo) + { + if (format == cultureInfo.DateTimeFormat.SortableDateTimePattern) + { + format = format.Replace("'", "").Replace("T", " "); + dateTime = dateTime.Replace("'", "").Replace("T", " "); + } + else if (format == cultureInfo.DateTimeFormat.UniversalSortableDateTimePattern) + { + format = format.Replace("'", "").Replace("Z", ""); + dateTime = dateTime.Replace("'", "").Replace("Z", ""); + } + } + private static Dictionary GetDateParts(DateTime currentDate, CultureInfo cultureInfo) { Dictionary dateParts = new Dictionary();