diff --git a/http/utility.hpp b/http/utility.hpp
index 5579267..62a4eb0 100644
--- a/http/utility.hpp
+++ b/http/utility.hpp
@@ -594,9 +594,8 @@
 // date. This behavior is to avoid exceptions throwed by Boost.
 inline std::string getDateTimeUint(uint64_t secondsSinceEpoch)
 {
-
-    boost::posix_time::seconds boostSeconds(
-        std::min(secondsSinceEpoch, details::maxSeconds));
+    secondsSinceEpoch = std::min(secondsSinceEpoch, details::maxSeconds);
+    boost::posix_time::seconds boostSeconds(secondsSinceEpoch);
     return details::getDateTime(
         boost::posix_time::milliseconds(boostSeconds.total_milliseconds()));
 }
@@ -607,14 +606,20 @@
 // supported date.
 inline std::string getDateTimeUintMs(uint64_t milliSecondsSinceEpoch)
 {
-    return details::getDateTime(boost::posix_time::milliseconds(
-        std::min(details::maxMilliSeconds, milliSecondsSinceEpoch)));
+    milliSecondsSinceEpoch =
+        std::min(details::maxMilliSeconds, milliSecondsSinceEpoch);
+    return details::getDateTime(
+        boost::posix_time::milliseconds(milliSecondsSinceEpoch));
 }
 
 inline std::string getDateTimeStdtime(std::time_t secondsSinceEpoch)
 {
-    boost::posix_time::ptime time = boost::posix_time::from_time_t(
-        std::min(secondsSinceEpoch, std::time_t{details::maxSeconds}));
+    if (secondsSinceEpoch > static_cast<int64_t>(details::maxSeconds))
+    {
+        secondsSinceEpoch = static_cast<std::time_t>(details::maxSeconds);
+    }
+    boost::posix_time::ptime time =
+        boost::posix_time::from_time_t(secondsSinceEpoch);
     return boost::posix_time::to_iso_extended_string(time) + "+00:00";
 }
 
