diff --git a/lib/private/AppFramework/Utility/TimeFactory.php b/lib/private/AppFramework/Utility/TimeFactory.php
index fc3bf72609fbefae0c01c4f61ca1736668ba028e..4526f9b1abb1791db4c1f4e4cd2c0629833b5641 100644
--- a/lib/private/AppFramework/Utility/TimeFactory.php
+++ b/lib/private/AppFramework/Utility/TimeFactory.php
@@ -37,9 +37,18 @@ class TimeFactory implements ITimeFactory {
 	/**
 	 * @return int the result of a call to time()
 	 */
-	public function getTime() : int {
+	public function getTime(): int {
 		return time();
 	}
 
+	/**
+	 * @param string $time
+	 * @param \DateTimeZone $timezone
+	 * @return \DateTime
+	 * @since 15.0.0
+	 */
+	public function getDateTime(string $time = 'now', \DateTimeZone $timezone = null): \DateTime {
+		return new \DateTime($time, $timezone);
+	}
 
 }
diff --git a/lib/public/AppFramework/Utility/ITimeFactory.php b/lib/public/AppFramework/Utility/ITimeFactory.php
index 7951d6ad8e611931db58dd18658819ba43e874c0..0367f037a6e899b305c4fc0e1b9fb736b1046e78 100644
--- a/lib/public/AppFramework/Utility/ITimeFactory.php
+++ b/lib/public/AppFramework/Utility/ITimeFactory.php
@@ -35,6 +35,14 @@ interface ITimeFactory {
 	 * @return int the result of a call to time()
 	 * @since 8.0.0
 	 */
-	public function getTime() : int;
+	public function getTime(): int;
+
+	/**
+	 * @param string $time
+	 * @param \DateTimeZone $timezone
+	 * @return \DateTime
+	 * @since 15.0.0
+	 */
+	public function getDateTime(string $time = 'now', \DateTimeZone $timezone = null): \DateTime;
 
 }