diff --git a/src/Orchard/Localization/Services/DefaultDateFormatter.cs b/src/Orchard/Localization/Services/DefaultDateFormatter.cs index 433264daf..e1771fdea 100644 --- a/src/Orchard/Localization/Services/DefaultDateFormatter.cs +++ b/src/Orchard/Localization/Services/DefaultDateFormatter.cs @@ -81,7 +81,8 @@ namespace Orchard.Framework.Localization.Services { } string IDateFormatter.FormatDate(DateParts parts, CultureInfo culture) { - // TODO: Mahsa should implement! + //var dateFormatString = + //return string.Format(dateFormatString,parts.Year,parts.Month,parts.Day); throw new NotImplementedException(); } @@ -92,8 +93,8 @@ namespace Orchard.Framework.Localization.Services { private Dictionary GetDateParseReplacements(CultureInfo culture) { return new Dictionary() { - {"dddd", "(?[0-9]{4})"}, - {"ddd", "(?[0-9]{3})"}, + {"dddd", String.Format("(?{0})", String.Join("|", culture.DateTimeFormat.DayNames))}, + {"ddd", String.Format("(?{0})", String.Join("|", culture.DateTimeFormat.AbbreviatedDayNames))}, {"dd", "(?[0-9]{2})"}, {"d", "(?[0-9]{1,2})"}, {"MMMM", String.Format("(?{0})", String.Join("|", culture.DateTimeFormat.MonthNames))}, @@ -133,6 +134,49 @@ namespace Orchard.Framework.Localization.Services { }; } + private Dictionary GetDateFormatReplacements(CultureInfo culture) { + return new Dictionary() { + {"dddd", "{5:dddd}"}, + {"ddd", "{6:ddd}"}, + {"dd", "{2:00}"}, + {"d", "{2:##}"}, + {"MMMM", "{3:MMMM}"}, + {"MMM", "{4:MMM}"}, + {"MM", "{1:00}"}, + {"M", "{1:##}"}, + {"yyyyy", "{1:00000}"}, + {"yyyy", "{1:0000}"}, + {"yyy", "{1:000}"}, + {"yy", "{1:00}"}, + {"y", "{1:0}"} + }; + } + + private Dictionary GetTimeFormatReplacements(CultureInfo culture) { + return new Dictionary() { + {"HH", "(?[0-9]{2})"}, + {"H", "(?[0-9]{1,2})"}, + {"hh", "(?[0-9]{2})"}, + {"h", "(?[0-9]{1,2})"}, + {"MM", "(?[0-9]{2})"}, + {"M", "(?[0-9]{1,2})"}, + {"mm", "(?[0-9]{2})"}, + {"m", "(?[0-9]{1,2})"}, + {"ss", "(?[0-9]{2})"}, + {"s", "(?[0-9]{1,2})"}, + {"f", "(?[0-9]{1})"}, + {"ff", "(?[0-9]{2})"}, + {"fff", "(?[0-9]{3})"}, + {"ffff", "(?[0-9]{4})"}, + {"fffff", "(?[0-9]{5})"}, + {"ffffff", "(?[0-9]{6})"}, + {"tt", String.Format("\\s*(?{0}|{1})\\s*", culture.DateTimeFormat.AMDesignator, culture.DateTimeFormat.PMDesignator)}, + {"t", String.Format("\\s*(?{0}|{1})\\s*", culture.DateTimeFormat.AMDesignator, culture.DateTimeFormat.PMDesignator)}, + {" tt", String.Format("\\s*(?{0}|{1})\\s*", culture.DateTimeFormat.AMDesignator, culture.DateTimeFormat.PMDesignator)}, + {" t", String.Format("\\s*(?{0}|{1})\\s*", culture.DateTimeFormat.AMDesignator, culture.DateTimeFormat.PMDesignator)} + }; + } + private string ReplaceAll(string original, IDictionary replacements) { var pattern = String.Format("{0}", String.Join("|", replacements.Keys.ToArray())); return Regex.Replace(original, pattern, (match) => replacements[match.Value]);