diff --git a/js/ui/calendar.js b/js/ui/calendar.js
index 75dcbb6..8da2c81 100644
--- a/js/ui/calendar.js
+++ b/js/ui/calendar.js
@@ -81,6 +81,15 @@ function _formatEventTime(event, clockFormat) {
     return ret;
 }
 
+function _getDateForLocale(date) {
+    if (date)
+        date = new Date(date);
+    else
+        date = new Date();
+    let locale_formatted_date = date.toLocaleFormat("%Y-%m-%dT%H:%M:%S");
+    return new Date(locale_formatted_date);
+}
+
 function _getCalendarWeekForDate(date) {
     // Based on the algorithms found here:
     // http://en.wikipedia.org/wiki/Talk:ISO_week_date
@@ -122,6 +131,29 @@ function _getCalendarDayAbbreviation(dayNumber) {
     return abbreviations[dayNumber];
 }
 
+function _getEventDay(dayNumber) {
+    let abbreviations = [
+        /* Translators: Event day for Sunday.
+         *
+         * NOTE: These are the names of the days, so they are unique.
+         */
+        C_("list sunday", "Sunday"),
+        /* Translators: Calendar day for Monday */
+        C_("list monday", "Monday"),
+        /* Translators: Calendar day for Tuesday */
+        C_("list tuesday", "Tuesday"),
+        /* Translators: Calendar day for Wednesday */
+        C_("list wednesday", "Wednesday"),
+        /* Translators: Calendar day for Thursday */
+        C_("list thursday", "Thursday"),
+        /* Translators: Calendar day for Friday */
+        C_("list friday", "Friday"),
+        /* Translators: Calendar day for Saturday */
+        C_("list saturday", "Saturday")
+    ];
+    return abbreviations[dayNumber];
+}
+
 function _getEventDayAbbreviation(dayNumber) {
     let abbreviations = [
         /* Translators: Event list abbreviation for Sunday.
@@ -147,6 +179,39 @@ function _getEventDayAbbreviation(dayNumber) {
     return abbreviations[dayNumber];
 }
 
+function _getCalendarMonth(monthNumber) {
+    let abbreviations = [
+        /* Translators: Calendar month for January.
+         *
+         * NOTE: These are the names of the months, so they are unique.
+         */
+        C_("list january", "January"),
+        /* Translators: Calendar month for February */
+        C_("list february", "February"),
+        /* Translators: Calendar month for March */
+        C_("list march", "March"),
+        /* Translators: Calendar month for April */
+        C_("list april", "April"),
+        /* Translators: Calendar month for May */
+        C_("list may", "May"),
+        /* Translators: Calendar month for June */
+        C_("list june", "June"),
+        /* Translators: Calendar month for July */
+        C_("list july", "July"),
+        /* Translators: Calendar month for August */
+        C_("list august", "August"),
+        /* Translators: Calendar month for September */
+        C_("list september", "September"),
+        /* Translators: Calendar month for October */
+        C_("list october", "October"),
+        /* Translators: Calendar month for November */
+        C_("list november", "November"),
+        /* Translators: Calendar month for December */
+        C_("list december", "December")
+    ];
+    return abbreviations[monthNumber];
+}
+
 // Abstraction for an appointment/event in a calendar
 
 const CalendarEvent = new Lang.Class({
@@ -353,7 +418,9 @@ const DBusEventSource = new Lang.Class({
         let result = [];
         for(let n = 0; n < this._events.length; n++) {
             let event = this._events[n];
-            if (_dateIntervalsOverlap (event.date, event.end, begin, end)) {
+            let start = _getDateForLocale(event.date.getTime());
+            let close = _getDateForLocale(event.end.getTime());
+            if (_dateIntervalsOverlap(start, close, begin, end)) {
                 result.push(event);
             }
         }
@@ -552,12 +619,12 @@ const Calendar = new Lang.Class({
     },
 
     _update: function(forceReload) {
-        let now = new Date();
+        let now = _getDateForLocale(null);
 
         if (_sameYear(this._selectedDate, now))
-            this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormatWithoutYear);
+            this._monthLabel.text = _getCalendarMonth(this._selectedDate.getMonth());
         else
-            this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormat);
+            this._monthLabel.text = _getCalendarMonth(this._selectedDate.getMonth()) + ' ' + this._selectedDate.getFullYear();
 
         // Remove everything but the topBox and the weekday labels
         let children = this.actor.get_children();
@@ -679,7 +746,7 @@ const EventsList = new Lang.Class({
 
     _init: function() {
         this.actor = new St.Table({ style_class: 'events-table' });
-        this._date = new Date();
+        this._date = _getDateForLocale(null);
         this._desktopSettings = new Gio.Settings({ schema: 'org.gnome.desktop.interface' });
         this._desktopSettings.connect('changed', Lang.bind(this, this._update));
         this._weekStart = Shell.util_get_week_start();
@@ -692,8 +759,10 @@ const EventsList = new Lang.Class({
 
     _addEvent: function(event, index, includeDayName) {
         let dayString;
-        if (includeDayName)
-            dayString = _getEventDayAbbreviation(event.date.getDay());
+        if (includeDayName) {
+            let event_date = _getDateForLocale(event.date);
+            dayString = _getEventDayAbbreviation(event_date.getDay());
+        }
         else
             dayString = '';
 
@@ -768,10 +837,10 @@ const EventsList = new Lang.Class({
         let now = new Date();
         if (_sameYear(day, now))
             /* Translators: Shown on calendar heading when selected day occurs on current year */
-            dayString = day.toLocaleFormat(C_("calendar heading", "%A, %B %d"));
+            dayString = _getEventDay(day.getDay()) + ', ' + _getCalendarMonth(day.getMonth()) + ' ' + day.getDate();
         else
             /* Translators: Shown on calendar heading when selected day occurs on different year */
-            dayString = day.toLocaleFormat(C_("calendar heading", "%A, %B %d, %Y"));
+            dayString = _getEventDay(day.getDay()) + ', ' + _getCalendarMonth(day.getMonth()) + ' ' + day.getDate() + ', ' + day.getFullYear();
         this._addPeriod(dayString, 0, dayBegin, dayEnd, false, true);
     },
 
@@ -779,7 +848,7 @@ const EventsList = new Lang.Class({
         this.actor.destroy_all_children();
         let index = 0;
 
-        let now = new Date();
+        let now = _getDateForLocale(null);
         let dayBegin = _getBeginningOfDay(now);
         let dayEnd = _getEndOfDay(now);
         index = this._addPeriod(_("Today"), index, dayBegin, dayEnd, false, true);
@@ -821,7 +890,7 @@ const EventsList = new Lang.Class({
         if (this._eventSource.isLoading)
             return;
 
-        let today = new Date();
+        let today = _getDateForLocale(null);
         if (_sameDay (this._date, today)) {
             this._showToday();
         } else {
diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js
index bd72a66..8b871e4 100644
--- a/js/ui/dateMenu.js
+++ b/js/ui/dateMenu.js
@@ -126,7 +126,8 @@ const DateMenuButton = new Lang.Class({
                  * Since this only happens when the menu is opened, the cost
                  * isn't very big.
                  */
-                this._calendar.setDate(now, true);
+                let updated_now = now.toLocaleFormat("%Y-%m-%dT%H:%M:%S");
+                this._calendar.setDate(new Date(updated_now), true);
                 // No need to update this._eventList as ::selected-date-changed
                 // signal will fire
             }
