diff --git a/oem/ibm/libpldmresponder/fru_oem_ibm.cpp b/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
index 2ff9a5a..c9360df 100644
--- a/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
+++ b/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
@@ -3,6 +3,7 @@
 #include <com/ibm/VPD/Manager/client.hpp>
 #include <phosphor-logging/lg2.hpp>
 
+#include <format>
 #include <ranges>
 
 PHOSPHOR_LOG2_USING;
@@ -60,22 +61,24 @@
                 {
                     return PLDM_ERROR_INVALID_DATA;
                 }
-                auto vendorId = std::to_string(htole16(pcieData->vendorId));
-                auto deviceId = std::to_string(htole16(pcieData->deviceId));
-                auto revisionId = std::to_string(pcieData->revisionId);
 
-                std::stringstream ss;
+                auto vendorId = std::format("0x{:04x}",
+                                            htole16(pcieData->vendorId));
+                auto deviceId = std::format("0x{:04x}",
+                                            htole16(pcieData->deviceId));
+                auto revisionId = std::format("0x{:02x}",
+                                              htole16(pcieData->revisionId));
 
+                std::string classCode = "0x";
                 for (const auto& ele : pcieData->classCode)
                 {
-                    ss << std::setfill('0') << std::setw(2) << std::hex << ele;
+                    classCode += std::format("{:02x}", ele);
                 }
-                std::string classCode = ss.str();
 
-                auto subSystemVendorId =
-                    std::to_string(htole16(pcieData->subSystemVendorId));
-                auto subSystemId =
-                    std::to_string(htole16(pcieData->subSystemId));
+                auto subSystemVendorId = std::format(
+                    "0x{:04x}", htole16(pcieData->subSystemVendorId));
+                auto subSystemId = std::format("0x{:04x}",
+                                               htole16(pcieData->subSystemId));
 
                 updateDBusProperty(fruRSI, entityAssociationMap, vendorId,
                                    deviceId, revisionId, classCode,
