diff --git a/extensions/openpower-pels/bcd_time.cpp b/extensions/openpower-pels/bcd_time.cpp
index bb80f1a..675b625 100644
--- a/extensions/openpower-pels/bcd_time.cpp
+++ b/extensions/openpower-pels/bcd_time.cpp
@@ -43,6 +43,14 @@
     return bcd;
 }
 
+BCDTime getBCDTime(uint64_t epochMS)
+{
+    std::chrono::milliseconds ms{epochMS};
+    std::chrono::time_point<std::chrono::system_clock> time{ms};
+
+    return getBCDTime(time);
+}
+
 Stream& operator>>(Stream& s, BCDTime& time)
 {
     s >> time.yearMSB >> time.yearLSB >> time.month >> time.day >> time.hour;
diff --git a/extensions/openpower-pels/bcd_time.hpp b/extensions/openpower-pels/bcd_time.hpp
index e218756..86d9f4e 100644
--- a/extensions/openpower-pels/bcd_time.hpp
+++ b/extensions/openpower-pels/bcd_time.hpp
@@ -36,6 +36,14 @@
 BCDTime getBCDTime(std::chrono::time_point<std::chrono::system_clock>& time);
 
 /**
+ * @brief Converts the number of milliseconds since the epoch into BCD time
+ *
+ * @param[in] milliseconds - Number of milliseconds since the epoch
+ * @return BCDTime - the BCD time
+ */
+BCDTime getBCDTime(uint64_t milliseconds);
+
+/**
  * @brief Converts a number to a BCD.
  *
  * For example 32 -> 0x32.
diff --git a/test/openpower-pels/bcd_time_test.cpp b/test/openpower-pels/bcd_time_test.cpp
index f1b7663..c8342a2 100644
--- a/test/openpower-pels/bcd_time_test.cpp
+++ b/test/openpower-pels/bcd_time_test.cpp
@@ -78,3 +78,13 @@
     EXPECT_EQ(timeInBCD.seconds, 0x42);
     EXPECT_EQ(timeInBCD.hundredths, 0x00);
 }
+
+TEST(BCDTimeTest, ConvertFromMSTest)
+{
+    auto now = std::chrono::system_clock::now();
+    uint64_t ms = std::chrono::duration_cast<std::chrono::milliseconds>(
+                      now.time_since_epoch())
+                      .count();
+
+    ASSERT_EQ(getBCDTime(now), getBCDTime(ms));
+}
