diff --git a/cper-utils.c b/cper-utils.c
index c8206c0..0eadf10 100644
--- a/cper-utils.c
+++ b/cper-utils.c
@@ -201,14 +201,14 @@
 //Output must be at least TIMESTAMP_LENGTH bytes long.
 void timestamp_to_string(char* out, EFI_ERROR_TIME_STAMP* timestamp)
 {
-    sprintf(out, "%02d%02d-%02d-%02dT%02d:%02d:%02d.000", 
-            timestamp->Century,
-            timestamp->Year,
-            timestamp->Month,
-            timestamp->Day,
-            timestamp->Hours,
-            timestamp->Minutes,
-            timestamp->Seconds);
+    sprintf(out, "%02hhu%02hhu-%02hhu-%02hhuT%02hhu:%02hhu:%02hhu.000", 
+            bcd_to_int(timestamp->Century) % 100, //Cannot go to three digits.
+            bcd_to_int(timestamp->Year) % 100, //Cannot go to three digits.
+            bcd_to_int(timestamp->Month),
+            bcd_to_int(timestamp->Day),
+            bcd_to_int(timestamp->Hours),
+            bcd_to_int(timestamp->Minutes),
+            bcd_to_int(timestamp->Seconds));
 }
 
 //Converts a single timestamp string to an EFI timestamp.
@@ -218,7 +218,7 @@
     if (timestamp == NULL)
         return;
 
-    sscanf(timestamp, "%02hhd%02hhd-%02hhd-%02hhdT%02hhd:%02hhd:%02hhd.000", 
+    sscanf(timestamp, "%2hhu%2hhu-%hhu-%hhuT%hhu:%hhu:%hhu.000", 
             &out->Century,
             &out->Year,
             &out->Month,
@@ -226,6 +226,15 @@
             &out->Hours,
             &out->Minutes,
             &out->Seconds);
+
+    //Convert back to BCD.
+    out->Century = int_to_bcd(out->Century);
+    out->Year = int_to_bcd(out->Year);
+    out->Month = int_to_bcd(out->Month);
+    out->Day = int_to_bcd(out->Day);
+    out->Hours = int_to_bcd(out->Hours);
+    out->Minutes = int_to_bcd(out->Minutes);
+    out->Seconds = int_to_bcd(out->Seconds);
 }
 
 //Helper function to convert an EDK EFI GUID into a string for intermediate use.
@@ -285,23 +294,4 @@
     }
 
     return 1;
-}
-
-//Converts the given BCD byte to a standard integer.
-int bcd_to_int(UINT8 bcd)
-{
-    return ((bcd & 0xF0) >> 4) * 10 + (bcd & 0x0F);
-}
-
-//Converts the given integer to a single byte BCD.
-UINT8 int_to_bcd(int value)
-{
-    UINT8 result = 0;
-    int shift = 0;
-    while (value > 0) {
-        result |= (value % 10) << (shift++ << 2);
-        value /= 10;
-    }
-
-    return result;
 }
\ No newline at end of file
