diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index 11190ef..de40356 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -439,14 +439,15 @@
         logEntryArray.push_back({});
         nlohmann::json& logEntryJson = logEntryArray.back();
 
-        logEntryJson = {{"EventId", "TestID"},
-                        {"EventType", "Event"},
-                        {"Severity", "OK"},
-                        {"Message", "Generated test event"},
-                        {"MessageId", "OpenBMC.0.2.TestEventLog"},
-                        {"MessageArgs", nlohmann::json::array()},
-                        {"EventTimestamp", crow::utility::dateTimeNow()},
-                        {"Context", customText}};
+        logEntryJson = {
+            {"EventId", "TestID"},
+            {"EventType", "Event"},
+            {"Severity", "OK"},
+            {"Message", "Generated test event"},
+            {"MessageId", "OpenBMC.0.2.TestEventLog"},
+            {"MessageArgs", nlohmann::json::array()},
+            {"EventTimestamp", crow::utility::getDateTimeOffsetNow().first},
+            {"Context", customText}};
 
         nlohmann::json msg = {{"@odata.type", "#Event.v1_4_0.Event"},
                               {"Id", std::to_string(eventSeqNum)},
@@ -1060,7 +1061,7 @@
         nlohmann::json event = {
             {"EventId", eventId},
             {"MemberId", memberId},
-            {"EventTimestamp", crow::utility::dateTimeNow()},
+            {"EventTimestamp", crow::utility::getDateTimeOffsetNow().first},
             {"OriginOfCondition", origin}};
         for (nlohmann::json::iterator it = event.begin(); it != event.end();
              ++it)
@@ -1116,7 +1117,7 @@
         {
             std::shared_ptr<Subscription> entry = it.second;
             nlohmann::json msgJson = {
-                {"Timestamp", crow::utility::dateTimeNow()},
+                {"Timestamp", crow::utility::getDateTimeOffsetNow().first},
                 {"OriginOfCondition", "/ibm/v1/HMC/BroadcastService"},
                 {"Name", "Broadcast Message"},
                 {"Message", broadcastMsg}};
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 2b06414..2800e86 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -995,6 +995,14 @@
                 "System Event Log Service";
             asyncResp->res.jsonValue["Id"] = "EventLog";
             asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull";
+
+            std::pair<std::string, std::string> redfishDateTimeOffset =
+                crow::utility::getDateTimeOffsetNow();
+
+            asyncResp->res.jsonValue["DateTime"] = redfishDateTimeOffset.first;
+            asyncResp->res.jsonValue["DateTimeLocalOffset"] =
+                redfishDateTimeOffset.second;
+
             asyncResp->res.jsonValue["Entries"] = {
                 {"@odata.id",
                  "/redfish/v1/Systems/system/LogServices/EventLog/Entries"}};
@@ -1830,6 +1838,14 @@
                     "BMC Journal Log Service";
                 asyncResp->res.jsonValue["Id"] = "BMC Journal";
                 asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull";
+
+                std::pair<std::string, std::string> redfishDateTimeOffset =
+                    crow::utility::getDateTimeOffsetNow();
+                asyncResp->res.jsonValue["DateTime"] =
+                    redfishDateTimeOffset.first;
+                asyncResp->res.jsonValue["DateTimeLocalOffset"] =
+                    redfishDateTimeOffset.second;
+
                 asyncResp->res.jsonValue["Entries"] = {
                     {"@odata.id",
                      "/redfish/v1/Managers/bmc/LogServices/Journal/Entries"}};
@@ -2071,6 +2087,14 @@
                 asyncResp->res.jsonValue["Description"] = "BMC Dump LogService";
                 asyncResp->res.jsonValue["Id"] = "Dump";
                 asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull";
+
+                std::pair<std::string, std::string> redfishDateTimeOffset =
+                    crow::utility::getDateTimeOffsetNow();
+                asyncResp->res.jsonValue["DateTime"] =
+                    redfishDateTimeOffset.first;
+                asyncResp->res.jsonValue["DateTimeLocalOffset"] =
+                    redfishDateTimeOffset.second;
+
                 asyncResp->res.jsonValue["Entries"] = {
                     {"@odata.id",
                      "/redfish/v1/Managers/bmc/LogServices/Dump/Entries"}};
@@ -2174,6 +2198,14 @@
                     "System Dump LogService";
                 asyncResp->res.jsonValue["Id"] = "Dump";
                 asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull";
+
+                std::pair<std::string, std::string> redfishDateTimeOffset =
+                    crow::utility::getDateTimeOffsetNow();
+                asyncResp->res.jsonValue["DateTime"] =
+                    redfishDateTimeOffset.first;
+                asyncResp->res.jsonValue["DateTimeLocalOffset"] =
+                    redfishDateTimeOffset.second;
+
                 asyncResp->res.jsonValue["Entries"] = {
                     {"@odata.id",
                      "/redfish/v1/Systems/system/LogServices/Dump/Entries"}};
@@ -2285,6 +2317,13 @@
             asyncResp->res.jsonValue["Id"] = "Oem Crashdump";
             asyncResp->res.jsonValue["OverWritePolicy"] = "WrapsWhenFull";
             asyncResp->res.jsonValue["MaxNumberOfRecords"] = 3;
+
+            std::pair<std::string, std::string> redfishDateTimeOffset =
+                crow::utility::getDateTimeOffsetNow();
+            asyncResp->res.jsonValue["DateTime"] = redfishDateTimeOffset.first;
+            asyncResp->res.jsonValue["DateTimeLocalOffset"] =
+                redfishDateTimeOffset.second;
+
             asyncResp->res.jsonValue["Entries"] = {
                 {"@odata.id",
                  "/redfish/v1/Systems/system/LogServices/Crashdump/Entries"}};
@@ -2730,6 +2769,14 @@
                     {"Entries",
                      {{"@odata.id", "/redfish/v1/Systems/system/LogServices/"
                                     "PostCodes/Entries"}}}};
+
+                std::pair<std::string, std::string> redfishDateTimeOffset =
+                    crow::utility::getDateTimeOffsetNow();
+                asyncResp->res.jsonValue["DateTime"] =
+                    redfishDateTimeOffset.first;
+                asyncResp->res.jsonValue["DateTimeLocalOffset"] =
+                    redfishDateTimeOffset.second;
+
                 asyncResp->res.jsonValue["Actions"]["#LogService.ClearLog"] = {
                     {"target",
                      "/redfish/v1/Systems/system/LogServices/PostCodes/"
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index b286f19..c6e6019 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -1987,7 +1987,12 @@
                 "/redfish/v1/Managers/bmc/Actions/Manager.ResetToDefaults";
             resetToDefaults["ResetType@Redfish.AllowableValues"] = {"ResetAll"};
 
-            asyncResp->res.jsonValue["DateTime"] = crow::utility::dateTimeNow();
+            std::pair<std::string, std::string> redfishDateTimeOffset =
+                crow::utility::getDateTimeOffsetNow();
+
+            asyncResp->res.jsonValue["DateTime"] = redfishDateTimeOffset.first;
+            asyncResp->res.jsonValue["DateTimeLocalOffset"] =
+                redfishDateTimeOffset.second;
 
             // TODO (Gunnar): Remove these one day since moved to ComputerSystem
             // Still used by OCP profiles
diff --git a/redfish-core/lib/task.hpp b/redfish-core/lib/task.hpp
index 33f983a..bca25a1 100644
--- a/redfish-core/lib/task.hpp
+++ b/redfish-core/lib/task.hpp
@@ -464,7 +464,7 @@
                 asyncResp->res.jsonValue["Name"] = "Task Service";
                 asyncResp->res.jsonValue["Id"] = "TaskService";
                 asyncResp->res.jsonValue["DateTime"] =
-                    crow::utility::dateTimeNow();
+                    crow::utility::getDateTimeOffsetNow().first;
                 asyncResp->res.jsonValue["CompletedTaskOverWritePolicy"] =
                     "Oldest";
 
