diff --git a/src/orca/default.py b/src/orca/default.py
index 965676f..b43b8f8 100644
--- a/src/orca/default.py
+++ b/src/orca/default.py
@@ -1027,6 +1027,22 @@ class Script(script.Script):
                 #
                 _("Toggle mouse review mode."))
 
+        self.inputEventHandlers["presentTimeHandler"] = \
+            input_event.InputEventHandler(
+                Script.presentTime,
+                # Translators: Orca can present the current date or time to the
+                # user using braille and speech pressing a quick key
+        # combination
+                _("Present the current time"))
+
+        self.inputEventHandlers["presentDateHandler"] = \
+            input_event.InputEventHandler(
+                Script.presentDate,
+                # Translators: Orca can present the current date or time to the
+                # user using braille and speech pressing a quick key
+                #  combination
+                _("Present the current date"))
+
         self.inputEventHandlers["bypassNextCommandHandler"] = \
             input_event.InputEventHandler(
                 Script.bypassNextCommand,
@@ -1881,6 +1897,27 @@ class Script(script.Script):
 
         #####################################################################
         #                                                                   #
+        # Say date and time key bindings
+        #                                                                   #
+        #####################################################################
+        keyBindings.add(
+            keybindings.KeyBinding(
+                "t",
+                settings.defaultModifierMask,
+                settings.ORCA_MODIFIER_MASK,
+                self.inputEventHandlers["presentTimeHandler"]))
+
+        keyBindings.add(
+            keybindings.KeyBinding(
+                "t",
+                settings.defaultModifierMask,
+                settings.ORCA_MODIFIER_MASK,
+                self.inputEventHandlers["presentDateHandler"],
+                2))
+
+
+        #####################################################################
+        #                                                                   #
         #  Bookmark key bindings                                            #
         #                                                                   #
         #####################################################################
@@ -8940,6 +8977,20 @@ class Script(script.Script):
 
         speech.speak(utterances)
 
+    def presentTime(self, inputEvent):
+        """ speaks and displays in braille the current time """
+        message = time.strftime(settings.presentTimeFormat, time.localtime())
+        speech.speak(message)
+        self.displayBrailleMessage(message, flashTime=settings.brailleFlashTime)
+        return True
+
+    def presentDate(self, inputEvent):
+        """ speaks and displays in braille the current date """
+        message = time.strftime(settings.presentDateFormat, time.localtime())
+        speech.speak(message)
+        self.displayBrailleMessage(message, flashTime=settings.brailleFlashTime)
+        return True
+
 # Dictionary that defines the state changes we care about for various
 # objects.  The key represents the role and the value represents a list
 # of states that we care about.
diff --git a/src/orca/settings.py b/src/orca/settings.py
index 9eddfd8..b720835 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -1461,3 +1461,39 @@ useExperimentalSpeechProsody = True
 # some introduce unnaturally long pauses between requests to speak.
 #
 enablePauseBreaks = True
+
+TIME_FORMAT_DIGITS = "%X"
+# Translators: Format directives to use on sayTime script
+# By default it gets the date and time format according to the current locale.
+# If you are not sure what to put here please use "%X", to get time format from
+# the system. Note that for some locales this format may not be the most
+# accurate.
+# 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
+# If you would like cutting leading zeros on values smaller then 10, use a dash,
+# (-), after the % character.
+# For instance, to get 24 hour time format with no leading zeros use
+# "%-H:%-M:%-S".
+# If you would like to insert words between format directives (for instance 
+# hour, minute, second word), feel free to do that, for example:
+# %H hour %M minute %-S second.
+#
+TIME_FORMAT_WITH_WORDS = _("%H hour %M minute %-S second.")
+presentTimeFormat = TIME_FORMAT_DIGITS
+
+DATE_FORMAT_DIGITS = "%x"
+# Translators: Format directives to use on sayDate script
+# By default it gets the date and time format according to the current locale.
+# If you are not sure what to put here please use "%x", to get date format from
+# the system. Note that for some locales this format may not be the most
+# accurate.
+# 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
+# If you would like cutting leading zeros on values smaller then 10, use a dash,
+# (-), after the % character.
+# For instance, to get the day of month without the leading zero use %-d.
+#
+Date_FORMAT_WITH_WORDS = _("%Y. %B %d, %A.")
+presentDateFormat = DATE_FORMAT_DIGITS
