diff --git a/src/Orchard/Localization/Services/IDateFormatter.txt b/src/Orchard/Localization/Services/IDateFormatter.txt
new file mode 100644
index 000000000..d6adb7626
--- /dev/null
+++ b/src/Orchard/Localization/Services/IDateFormatter.txt
@@ -0,0 +1,41 @@
+DateTime? ConvertToSiteTimeZone(DateTime? date)
+DateTime? ConvertFromSiteTimeZone(DateTime? date)
+ - Also provides overloads with non-nullable DateTime parameters for compatibility with existing callers.
+ - Does only time zone conversion. No calendar conversion.
+
+DateTimeParts? ConvertToSiteCalendar(DateTime? date)
+DateTime? ConvertFromSiteCalendar(Parts? dateParts)
+ - Does only calendar conversion. No time zone conversion.
+ - Instantiates the site calendar and does "manual" conversion.
+ - Uses a custom storage structure DateTimeParts for non-gregorian representation.
+
+string ConvertToLocalizedDateString(DateTime? date, DateLocalizationOptions options = DateLocalizationOptions.Default)
+string ConvertToLocalizedTimeString(DateTime? date, DateLocalizationOptions options = DateLocalizationOptions.Default)
+string ConvertToLocalizedString(DateTime? date, DateLocalizationOptions options)
+string ConvertToLocalizedString(DateTime? date, string format, DateLocalizationOptions options)
+ - Also provides overloads with non-nullable DateTime parameters for compatibility with existing callers.
+ - By default performs the full conversion (time zone, calendar and formatting). Can be overridden by DateLocalizationOptions.
+ - If NOT ConvertCalendar, uses DateTime.ToString() with an cloned CultureInfo using GregorianCalendar of type Localized.
+ - If ConvertCalendar and UNSUPPORTED non-default calendar, uses ConvertToSiteCalendar() and Mahsa's custom formatting.
+ - If ConvertCalendar and SUPPORTED non-default calendar, uses DateTime.ToString() with cloned CultureInfo using an optional calendar instance, which does both calendar conversion and formatting.
+ - Otherwise uses DateTime.ToString() with configured CultureInfo which does both calendar conversion and formatting.
+
+DateTime? ConvertFromLocalizedDateString(string dateString, DateLocalizationOptions options = DateLocalizationOptions.Default)
+DateTime? ConvertFromLocalizedTimeString(string timeString, DateLocalizationOptions options = DateLocalizationOptions.Default)
+DateTime? ConvertFromLocalizedString(string dateTimeString, DateLocalizationOptions options = DateLocalizationOptions.Default)
+DateTime? ConvertFromLocalizedString(string dateString, string timeString, DateLocalizationOptions options = DateLocalizationOptions.Default)
+ - By default performs the full conversion (parsing, calendar and time zone). Can be overridden by DateLocalizationOptions.
+ - ConvertFromLocalizedDateString() returns a DateTime? with the time component set to 00:00:00. ConvertTimeZone is ignored.
+ - ConvertFromLocalizedTimeString() returns a DateTime? with the date component set to DateTime.MinValue. ConvertCalendar is ignored.
+ - If NOT ConvertCalendar, uses DateTime.Parse() with an cloned CultureInfo using GregorianCalendar of type Localized.
+ - If ConvertCalendar and UNSUPPORTED non-default calendar, uses Mahsa's custom parsing and ConvertToSiteCalendar().
+ - If ConvertCalendar and SUPPORTED non-default calendar, uses DateTime.Parse() with cloned CultureInfo using an optional calendar instance, which does both parsing and calendar conversion.
+ - Otherwise uses DateTime.Parse() with configured CultureInfo which does both parsing and calendar conversion.
+ - ConvertFromLocalizedString() with dateString or timeString set to null is the same as ConvertFromLocalizedTimeString() and ConvertFromLocalizedDateString() respectively.
+ - Checks if the parsed string matches NullText, and if so returns null.
+
+struct DateLocalizationOptions {
+ bool ConvertTimeZone;
+ bool ConvertCalendar;
+ string NullText;
+}
\ No newline at end of file
diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj
index ac911703a..0b20dc7b4 100644
--- a/src/Orchard/Orchard.Framework.csproj
+++ b/src/Orchard/Orchard.Framework.csproj
@@ -983,7 +983,9 @@
true
-
+
+
+