@@ -375,6 +375,23 @@ def test_flexible_datetime_with_colon():
375
375
assert r .named ["dt" ] == datetime (2023 , 11 , 21 , 13 , 23 , 27 )
376
376
377
377
378
+ def test_datetime_with_various_subsecond_precision ():
379
+ r = parse .parse ("{dt:%Y-%m-%d %H:%M:%S.%f}" , "2023-11-21 13:23:27.123456" )
380
+ assert r .named ["dt" ] == datetime (2023 , 11 , 21 , 13 , 23 , 27 , 123456 )
381
+
382
+ r = parse .parse ("{dt:%Y-%m-%d %H:%M:%S.%f}" , "2023-11-21 13:23:27.12345" )
383
+ assert r .named ["dt" ] == datetime (2023 , 11 , 21 , 13 , 23 , 27 , 123450 )
384
+
385
+ r = parse .parse ("{dt:%Y-%m-%d %H:%M:%S.%f}" , "2023-11-21 13:23:27.1234" )
386
+ assert r .named ["dt" ] == datetime (2023 , 11 , 21 , 13 , 23 , 27 , 123400 )
387
+
388
+ r = parse .parse ("{dt:%Y-%m-%d %H:%M:%S.%f}" , "2023-11-21 13:23:27.123" )
389
+ assert r .named ["dt" ] == datetime (2023 , 11 , 21 , 13 , 23 , 27 , 123000 )
390
+
391
+ r = parse .parse ("{dt:%Y-%m-%d %H:%M:%S.%f}" , "2023-11-21 13:23:27.0" )
392
+ assert r .named ["dt" ] == datetime (2023 , 11 , 21 , 13 , 23 , 27 , 0 )
393
+
394
+
378
395
@pytest .mark .skipif (
379
396
sys .version_info [0 ] < 3 , reason = "Python 3+ required for timezone support"
380
397
)
0 commit comments