Search code examples
pythondatetimeunix-timestamp

Convert python datetime to timestamp in milliseconds


How do I convert a human-readable time such as 20.12.2016 09:38:42,76 to a Unix timestamp in milliseconds?


Solution

  • In Python 3 this can be done in 2 steps:

    1. Convert timestring to datetime object
    2. Multiply the timestamp of the datetime object by 1000 to convert it to milliseconds.

    For example like this:

    from datetime import datetime
    
    dt_obj = datetime.strptime('20.12.2016 09:38:42,76',
                               '%d.%m.%Y %H:%M:%S,%f')
    millisec = dt_obj.timestamp() * 1000
    
    print(millisec)
    

    Output:

    1482223122760.0
    

    strptime accepts your timestring and a format string as input. The timestring (first argument) specifies what you actually want to convert to a datetime object. The format string (second argument) specifies the actual format of the string that you have passed.

    Here is the explanation of the format specifiers from the official documentation:

    • %d - Day of the month as a zero-padded decimal number.
    • %m - Month as a zero-padded decimal number.
    • %Y - Year with century as a decimal number
    • %H - Hour (24-hour clock) as a zero-padded decimal number.
    • %M - Minute as a zero-padded decimal number.
    • %S - Second as a zero-padded decimal number.
    • %f - Microsecond as a decimal number, zero-padded to 6 digits.