Format a datetime into a string with milliseconds

StackOverflow

I want to have a datetime string from the date with milliseconds. This code is typical for me and I"m eager to learn how to shorten it.

from datetime import datetime

timeformatted= str(datetime.utcnow())
semiformatted= timeformatted.replace("-";"")
almostformatted= semiformatted.replace(":";"")
formatted=almostformatted.replace(".";"")
withspacegoaway=formatted.replace(" ";"")
formattedstripped=withspacegoaway.strip()
print formattedstripped

Answer rating: 455

To get a date string with milliseconds (3 decimal places behind seconds), use this:

from datetime import datetime

print datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]

>>>> OUTPUT >>>>
2020-05-04 10:18:32.926

Note: For Python3, print requires parentheses:

print(datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3])

Answer rating: 101

With Python 3.6 you can use:

from datetime import datetime
datetime.utcnow().isoformat(sep=" ", timespec="milliseconds")

Output:

"2019-05-10 09:08:53.155"

More info here: https://docs.python.org/3/library/datetime.html#datetime.datetime.isoformat





Tutorials