diff --git a/Lib/datetime.py b/Lib/datetime.py
index d661460..5ba2ddb 100644
--- a/Lib/datetime.py
+++ b/Lib/datetime.py
@@ -1384,7 +1384,7 @@
         converter = _time.localtime if tz is None else _time.gmtime
 
         t, frac = divmod(t, 1.0)
-        us = int(frac * 1e6)
+        us = _round_half_up(frac * 1e6)
 
         # If timestamp is less than one microsecond smaller than a
         # full second, us can be rounded up to 1000000.  In this case,
@@ -1404,7 +1404,7 @@
     def utcfromtimestamp(cls, t):
         """Construct a naive UTC datetime from a POSIX timestamp."""
         t, frac = divmod(t, 1.0)
-        us = int(frac * 1e6)
+        us = _round_half_up(frac * 1e6)
 
         # If timestamp is less than one microsecond smaller than a
         # full second, us can be rounded up to 1000000.  In this case,
diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py
index 62f5527..f516434 100644
--- a/Lib/test/datetimetester.py
+++ b/Lib/test/datetimetester.py
@@ -1847,6 +1847,7 @@
             zero = fts(0)
             self.assertEqual(zero.second, 0)
             self.assertEqual(zero.microsecond, 0)
+            one = fts(1e-6)
             try:
                 minus_one = fts(-1e-6)
             except OSError:
@@ -1857,22 +1858,22 @@
                 self.assertEqual(minus_one.microsecond, 999999)
 
                 t = fts(-1e-8)
-                self.assertEqual(t, minus_one)
+                self.assertEqual(t, zero)
                 t = fts(-9e-7)
                 self.assertEqual(t, minus_one)
                 t = fts(-1e-7)
-                self.assertEqual(t, minus_one)
+                self.assertEqual(t, zero)
 
             t = fts(1e-7)
             self.assertEqual(t, zero)
             t = fts(9e-7)
-            self.assertEqual(t, zero)
+            self.assertEqual(t, one)
             t = fts(0.99999949)
             self.assertEqual(t.second, 0)
             self.assertEqual(t.microsecond, 999999)
             t = fts(0.9999999)
-            self.assertEqual(t.second, 0)
-            self.assertEqual(t.microsecond, 999999)
+            self.assertEqual(t.second, 1)
+            self.assertEqual(t.microsecond, 0)
 
     def test_insane_fromtimestamp(self):
         # It's possible that some platform maps time_t to double,
diff --git a/Misc/NEWS b/Misc/NEWS
index c9b925a..9af32ad 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -17,6 +17,11 @@
 Library
 -------
 
+- Issue #23517: fromtimestamp() and utcfromtimestamp() methods of
+  datetime.datetime now round microseconds to nearest with ties going away from
+  zero (ROUND_HALF_UP), as Python 2 and Python older than 3.3, instead of
+  rounding towards -Infinity (ROUND_FLOOR).
+
 - Issue #23517: datetime.timedelta constructor now rounds microseconds to
   nearest with ties going away from zero (ROUND_HALF_UP), as Python 2 and
   Python older than 3.3, instead of rounding to nearest with ties going to
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index 6cab1e2..ae459df 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -4078,7 +4078,7 @@
     long us;
 
     if (_PyTime_ObjectToTimeval(timestamp,
-                                &timet, &us, _PyTime_ROUND_FLOOR) == -1)
+                                &timet, &us, _PyTime_ROUND_HALF_UP) == -1)
         return NULL;
 
     return datetime_from_timet_and_us(cls, f, timet, (int)us, tzinfo);
