Commit 511491a
committed
Issue #23517: Fix rounding in fromtimestamp() and utcfromtimestamp() methods
of datetime.datetime: microseconds are now rounded to nearest with ties going
to nearest even integer (ROUND_HALF_EVEN), instead of being rounding towards
zero (ROUND_DOWN). It's important that these methods use the same rounding
mode than datetime.timedelta to keep the property:
(datetime(1970,1,1) + timedelta(seconds=t)) == datetime.utcfromtimestamp(t)
It also the rounding mode used by round(float) for example.
Add more unit tests on the rounding mode in test_datetime.1 parent e3bcbd2 commit 511491a
4 files changed
Lines changed: 113 additions & 41 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1362 | 1362 | | |
1363 | 1363 | | |
1364 | 1364 | | |
1365 | | - | |
| 1365 | + | |
1366 | 1366 | | |
1367 | 1367 | | |
1368 | 1368 | | |
1369 | 1369 | | |
| 1370 | + | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
| 1376 | + | |
| 1377 | + | |
1370 | 1378 | | |
1371 | | - | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
1372 | 1383 | | |
1373 | | - | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
1374 | 1387 | | |
1375 | | - | |
1376 | | - | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
1377 | 1391 | | |
1378 | | - | |
1379 | | - | |
1380 | | - | |
1381 | | - | |
1382 | | - | |
1383 | | - | |
1384 | | - | |
1385 | | - | |
1386 | | - | |
1387 | | - | |
| 1392 | + | |
1388 | 1393 | | |
1389 | 1394 | | |
1390 | 1395 | | |
1391 | 1396 | | |
1392 | 1397 | | |
1393 | 1398 | | |
1394 | | - | |
1395 | | - | |
1396 | | - | |
1397 | | - | |
1398 | | - | |
1399 | | - | |
1400 | | - | |
1401 | | - | |
1402 | | - | |
1403 | | - | |
1404 | | - | |
1405 | | - | |
1406 | | - | |
1407 | | - | |
| 1399 | + | |
| 1400 | + | |
1408 | 1401 | | |
1409 | 1402 | | |
1410 | 1403 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
650 | 650 | | |
651 | 651 | | |
652 | 652 | | |
| 653 | + | |
| 654 | + | |
653 | 655 | | |
654 | 656 | | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
655 | 663 | | |
656 | 664 | | |
657 | 665 | | |
| |||
1824 | 1832 | | |
1825 | 1833 | | |
1826 | 1834 | | |
| 1835 | + | |
1827 | 1836 | | |
1828 | 1837 | | |
1829 | 1838 | | |
1830 | 1839 | | |
1831 | 1840 | | |
1832 | 1841 | | |
| 1842 | + | |
1833 | 1843 | | |
1834 | 1844 | | |
1835 | 1845 | | |
| |||
1840 | 1850 | | |
1841 | 1851 | | |
1842 | 1852 | | |
1843 | | - | |
| 1853 | + | |
1844 | 1854 | | |
1845 | 1855 | | |
1846 | 1856 | | |
1847 | | - | |
| 1857 | + | |
| 1858 | + | |
| 1859 | + | |
| 1860 | + | |
1848 | 1861 | | |
1849 | 1862 | | |
1850 | 1863 | | |
1851 | 1864 | | |
1852 | | - | |
| 1865 | + | |
1853 | 1866 | | |
1854 | 1867 | | |
1855 | 1868 | | |
1856 | 1869 | | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
1857 | 1873 | | |
1858 | | - | |
| 1874 | + | |
1859 | 1875 | | |
1860 | 1876 | | |
1861 | 1877 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
84 | 92 | | |
85 | 93 | | |
86 | 94 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4113 | 4113 | | |
4114 | 4114 | | |
4115 | 4115 | | |
| 4116 | + | |
| 4117 | + | |
| 4118 | + | |
| 4119 | + | |
| 4120 | + | |
| 4121 | + | |
| 4122 | + | |
| 4123 | + | |
| 4124 | + | |
| 4125 | + | |
| 4126 | + | |
| 4127 | + | |
| 4128 | + | |
| 4129 | + | |
| 4130 | + | |
| 4131 | + | |
| 4132 | + | |
| 4133 | + | |
| 4134 | + | |
| 4135 | + | |
| 4136 | + | |
| 4137 | + | |
| 4138 | + | |
| 4139 | + | |
| 4140 | + | |
| 4141 | + | |
| 4142 | + | |
| 4143 | + | |
| 4144 | + | |
| 4145 | + | |
| 4146 | + | |
| 4147 | + | |
| 4148 | + | |
| 4149 | + | |
| 4150 | + | |
| 4151 | + | |
| 4152 | + | |
| 4153 | + | |
4116 | 4154 | | |
4117 | 4155 | | |
4118 | 4156 | | |
| |||
4121 | 4159 | | |
4122 | 4160 | | |
4123 | 4161 | | |
4124 | | - | |
| 4162 | + | |
4125 | 4163 | | |
4126 | 4164 | | |
4127 | 4165 | | |
4128 | | - | |
| 4166 | + | |
| 4167 | + | |
4129 | 4168 | | |
4130 | | - | |
| 4169 | + | |
| 4170 | + | |
4131 | 4171 | | |
4132 | | - | |
| 4172 | + | |
| 4173 | + | |
| 4174 | + | |
| 4175 | + | |
| 4176 | + | |
| 4177 | + | |
| 4178 | + | |
| 4179 | + | |
| 4180 | + | |
| 4181 | + | |
| 4182 | + | |
| 4183 | + | |
| 4184 | + | |
| 4185 | + | |
| 4186 | + | |
| 4187 | + | |
4133 | 4188 | | |
4134 | 4189 | | |
4135 | 4190 | | |
| |||
4231 | 4286 | | |
4232 | 4287 | | |
4233 | 4288 | | |
4234 | | - | |
| 4289 | + | |
4235 | 4290 | | |
4236 | 4291 | | |
4237 | 4292 | | |
4238 | | - | |
| 4293 | + | |
4239 | 4294 | | |
4240 | 4295 | | |
4241 | 4296 | | |
| |||
4259 | 4314 | | |
4260 | 4315 | | |
4261 | 4316 | | |
4262 | | - | |
| 4317 | + | |
4263 | 4318 | | |
4264 | 4319 | | |
4265 | | - | |
| 4320 | + | |
4266 | 4321 | | |
4267 | 4322 | | |
4268 | 4323 | | |
| |||
0 commit comments