diff --git a/src/orca/orca-setup.ui b/src/orca/orca-setup.ui
index 942babb..46ea8a6 100644
--- a/src/orca/orca-setup.ui
+++ b/src/orca/orca-setup.ui
@@ -226,6 +226,18 @@
       </row>
     </data>
   </object>
+  <object class="GtkListStore" id="liststore2">
+    <columns>
+      <!-- column-name gchararray1 -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
+  <object class="GtkListStore" id="liststore1">
+    <columns>
+      <!-- column-name gchararray1 -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
   <object class="GtkDialog" id="orcaSetupWindow">
     <property name="title" translatable="yes">Orca Preferences</property>
     <property name="type_hint">normal</property>
@@ -416,6 +428,92 @@
                         <property name="position">6</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkTable" id="table1">
+                        <property name="visible">True</property>
+                        <property name="n_rows">2</property>
+                        <property name="n_columns">2</property>
+                        <property name="column_spacing">9</property>
+                        <child>
+                          <object class="GtkComboBox" id="dateFormatCombo">
+                            <property name="visible">True</property>
+                            <property name="model">liststore2</property>
+                            <signal name="changed" handler="dateFormatChanged"/>
+                            <child>
+                              <object class="GtkCellRendererText" id="cellrenderertext1"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_FILL</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="dateFormatLabel">
+                            <property name="visible">True</property>
+                            <property name="xalign">0.0099999997764825821</property>
+                            <property name="label" translatable="yes" comments="Translators: Orca can present the current date to the user, here they can choose how the date should be presented to them.">Dat_e format:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">dateFormatCombo</property>
+                            <accessibility>
+                              <relation type="label-for" target="dateFormatCombo"/>
+                            </accessibility>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBox" id="timeFormatCombo">
+                            <property name="visible">True</property>
+                            <property name="model">liststore1</property>
+                            <signal name="changed" handler="timeFormatChanged"/>
+                            <child>
+                              <object class="GtkCellRendererText" id="cellrenderertext2"/>
+                              <attributes>
+                                <attribute name="text">0</attribute>
+                              </attributes>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="x_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="timeFormatLabel">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes" comments="Translators: Orca can present the current time to the user, here they can choose how the time should be presented to them.">_Time format:</property>
+                            <property name="use_underline">True</property>
+                            <property name="justify">right</property>
+                            <property name="mnemonic_widget">timeFormatCombo</property>
+                            <accessibility>
+                              <relation type="label-for" target="timeFormatCombo"/>
+                            </accessibility>
+                          </object>
+                          <packing>
+                            <property name="x_options">GTK_FILL</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">7</property>
+                      </packing>
+                    </child>
                   </object>
                 </child>
                 <child type="tab">
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index 531549a..50d2c8c 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -32,6 +32,7 @@ import gtk
 import gobject
 import pango   # for ellipsize property constants of CellRendererText
 import locale
+import time
 
 import acss
 try:
@@ -76,6 +77,17 @@ from orca_i18n import C_ # to provide qualified translatable strings
 #
 (DEFAULT, UPPERCASE, HYPERLINK) = range(3)
 
+# Must match the order that the timeFormatCombo is populated.
+#
+(TIME_FORMAT_LOCALE, TIME_FORMAT_24_HMS,
+ TIME_FORMAT_24_HMS_WITH_WORDS, TIME_FORMAT_24_HM,
+ TIME_FORMAT_24_HM_WITH_WORDS) = range(5)
+
+# Must match the order that the dateFormatCombo is populated.
+#
+(DATE_FORMAT_LOCALE, DATE_FORMAT_AdBY,
+ DATE_FORMAT_adbY, american_DATE_FORMAT_AdBY, american_DATE_FORMAT_adbY, translator_determined_DATE_FORMAT_AdBY) = range(6)
+
 class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
 
     # Translators: this is an algorithm for tracking an object
@@ -1559,6 +1571,55 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         self.populateComboBox(combobox, [_("Line"), _("Sentence")])
         combobox.set_active(prefs["sayAllStyle"])
 
+        combobox2 = self.get_widget("dateFormatCombo")
+        sdtime = time.strftime
+        ltime = time.localtime
+        self.populateComboBox(combobox2,
+          [sdtime(settings.DATE_FORMAT_LOCALE, ltime()),
+           sdtime(settings.DATE_FORMAT_AdBY, ltime()),
+           sdtime(settings.DATE_FORMAT_adbY, ltime()),
+           sdtime(settings.american_DATE_FORMAT_AdBY, ltime()),
+           sdtime(settings.american_DATE_FORMAT_adbY, ltime()),
+           sdtime(settings.translator_determined_DATE_FORMAT_AdBY, ltime())
+          ])
+    
+        indexdate = DATE_FORMAT_LOCALE
+        dateFormat = self.prefsDict["presentDateFormat"]
+        if dateFormat == settings.DATE_FORMAT_LOCALE:
+            indexdate = DATE_FORMAT_LOCALE
+        elif dateFormat == settings.DATE_FORMAT_AdBY:
+            indexdate = DATE_FORMAT_AdBY
+        elif dateFormat == settings.DATE_FORMAT_adbY:
+            indexdate = DATE_FORMAT_adbY
+        elif dateFormat == settings.american_DATE_FORMAT_AdBY:
+            indexdate = american_DATE_FORMAT_AdBY
+        elif dateFormat == settings.american_DATE_FORMAT_adbY:
+            indexdate = american_DATE_FORMAT_adbY
+        elif dateFormat == settings.translator_determined_DATE_FORMAT_AdBY:
+            indexdate = translator_determined_DATE_FORMAT_AdBY
+        combobox2.set_active (indexdate)
+        
+        combobox3 = self.get_widget("timeFormatCombo")
+        self.populateComboBox(combobox3,
+          [sdtime(settings.TIME_FORMAT_LOCALE, ltime()),
+           sdtime(settings.TIME_FORMAT_24_HMS, ltime()),
+           sdtime(settings.TIME_FORMAT_24_HMS_WITH_WORDS, ltime()),
+           sdtime(settings.TIME_FORMAT_24_HM, ltime()),
+           sdtime(settings.TIME_FORMAT_24_HM_WITH_WORDS, ltime())])
+        indextime = TIME_FORMAT_LOCALE
+        timeFormat = self.prefsDict["presentTimeFormat"]
+        if timeFormat == settings.TIME_FORMAT_LOCALE:
+            indextime = TIME_FORMAT_LOCALE
+        elif timeFormat == settings.TIME_FORMAT_24_HMS:
+            indextime = TIME_FORMAT_24_HMS
+        elif timeFormat == settings.TIME_FORMAT_24_HMS_WITH_WORDS:
+            indextime = TIME_FORMAT_24_HMS_WITH_WORDS
+        elif timeFormat == settings.TIME_FORMAT_24_HM:
+            indextime = TIME_FORMAT_24_HM
+        elif timeFormat == settings.TIME_FORMAT_24_HM_WITH_WORDS:
+            indextime = TIME_FORMAT_24_HM_WITH_WORDS
+        combobox3.set_active (indextime)
+
         # Set the sensitivity of the "Update Interval" items, depending
         # upon whether the "Speak progress bar updates" checkbox is checked.
         #
@@ -2854,6 +2915,52 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         elif sayAllStyle == _("Sentence"):
             self.prefsDict["sayAllStyle"] = settings.SAYALL_STYLE_SENTENCE
 
+    def dateFormatChanged(self, widget):
+        """Signal handler for the "changed" signal for the dateFormat
+           GtkComboBox widget. Set the 'dateFormat' preference to the
+           new value.
+
+        Arguments:
+        - widget: the component that generated the signal.
+        """
+
+        dateFormatCombo = widget.get_active()
+        if dateFormatCombo == DATE_FORMAT_LOCALE:
+            newFormat = settings.DATE_FORMAT_LOCALE
+        elif dateFormatCombo == DATE_FORMAT_AdBY:
+            newFormat = settings.DATE_FORMAT_AdBY
+        elif dateFormatCombo == DATE_FORMAT_adbY:
+            newFormat = settings.DATE_FORMAT_adbY
+        elif dateFormatCombo == american_DATE_FORMAT_AdBY:
+            newFormat = settings.american_DATE_FORMAT_AdBY
+        elif dateFormatCombo == american_DATE_FORMAT_adbY:
+            newFormat = settings.american_DATE_FORMAT_adbY
+        elif dateFormatCombo == translator_determined_DATE_FORMAT_AdBY:
+            newFormat = settings.translator_determined_DATE_FORMAT_AdBY
+        self.prefsDict["presentDateFormat"] = newFormat
+    
+    def timeFormatChanged(self, widget):
+        """Signal handler for the "changed" signal for the timeFormat
+           GtkComboBox widget. Set the 'timeFormat' preference to the
+           new value.
+
+        Arguments:
+        - widget: the component that generated the signal.
+        """
+
+        timeFormatCombo = widget.get_active()
+        if timeFormatCombo == TIME_FORMAT_LOCALE:
+            newFormat = settings.TIME_FORMAT_LOCALE
+        elif timeFormatCombo == TIME_FORMAT_24_HMS:
+            newFormat = settings.TIME_FORMAT_24_HMS
+        elif timeFormatCombo == TIME_FORMAT_24_HMS_WITH_WORDS:
+            newFormat = settings.TIME_FORMAT_24_HMS_WITH_WORDS
+        elif timeFormatCombo == TIME_FORMAT_24_HM:
+            newFormat = settings.TIME_FORMAT_24_HM
+        elif timeFormatCombo == TIME_FORMAT_24_HM_WITH_WORDS:
+            newFormat  = settings.TIME_FORMAT_24_HM_WITH_WORDS
+        self.prefsDict["presentTimeFormat"] =  newFormat
+
     def speechVerbosityChanged(self, widget):
         """Signal handler for the "toggled" signal for the speechBriefButton,
            or speechVerboseButton GtkRadioButton widgets. The user has
diff --git a/src/orca/orca_prefs.py b/src/orca/orca_prefs.py
index d06fa9f..3972b18 100644
--- a/src/orca/orca_prefs.py
+++ b/src/orca/orca_prefs.py
@@ -351,10 +351,16 @@ class OrcaPrefs:
             return "orca.settings.TIME_FORMAT_LOCALE"
 
     def _getPresentDateString(self, val):
-        if val == settings.DATE_FORMAT_WITH_LONG_NAMES:
-            return "orca.settings.DATE_FORMAT_WITH_LONG_NAMES"
-        elif val == settings.DATE_FORMAT_WITH_SHORT_NAMES:
-            return "orca.settings.DATE_FORMAT_WITH_SHORT_NAMES"
+        if val == settings.DATE_FORMAT_AdBY:
+            return "orca.settings.DATE_FORMAT_AdBY"
+        elif val == settings.DATE_FORMAT_adbY:
+            return "orca.settings.DATE_FORMAT_adbY"
+        elif val == settings.american_DATE_FORMAT_AdBY:
+            return "orca.settings.american_DATE_FORMAT_AdBY"
+        elif val == settings.american_DATE_FORMAT_adbY:
+            return "orca.settings.american_DATE_FORMAT_adbY"
+        elif val == settings.translator_determined_DATE_FORMAT_AdBY:
+            return "orca.settings.translator_determined_DATE_FORMAT_AdBY"
         else:
             return "orca.settings.DATE_FORMAT_LOCALE"
 
diff --git a/src/orca/settings.py b/src/orca/settings.py
index 8e3470d..9463bb5 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -197,7 +197,7 @@ userCustomizableSettings = [
     "flashVerbosityLevel",
     "messageVerbosityLevel",
     "presentDateFormat",
-    "presentTimeFormat",
+    "presentTimeFormat"
 ]
 
 # The name of the module that hold the user interface for the main window
@@ -1517,6 +1517,15 @@ presentTimeFormat = TIME_FORMAT_LOCALE
 # http://docs.python.org/library/time.html#time.strftime
 #
 DATE_FORMAT_LOCALE = "%x"
-DATE_FORMAT_WITH_LONG_NAMES = "%A, %d, %B, %Y."
-DATE_FORMAT_WITH_SHORT_NAMES = "%a, %d, %b, %Y."
+DATE_FORMAT_AdBY = "%A, %d %B, %Y."
+DATE_FORMAT_adbY = "%a, %d, %b, %Y."
+american_DATE_FORMAT_AdBY = "%A, %B %d, %Y."
+american_DATE_FORMAT_adbY = "%a, %b %d, %Y."
+# Translators: Format directives to use in presentDate function.
+# By default we use the date format according to the current locale.
+# These format strings are passed to python's time.strftime function. To see
+# possible directives to embed in the format strings check:
+# http://docs.python.org/library/time.html#time.strftime
+#
+translator_determined_DATE_FORMAT_AdBY = _("%Y. %B %d, %A.")
 presentDateFormat = DATE_FORMAT_LOCALE
