Как я могу преобразовать объект datetime в миллисекунды с начала эпохи (unix time) в Python? - PullRequest
301 голосов
/ 09 августа 2011

У меня есть объект Python datetime, который я хочу преобразовать в unix-время или секунды / миллисекунды с эпохи 1970 года.

Как мне это сделать?

Ответы [ 13 ]

1 голос
/ 09 августа 2011
import time
seconds_since_epoch = time.mktime(your_datetime.timetuple()) * 1000
0 голосов
/ 18 ноября 2018

Вот функция, которую я сделал, основываясь на ответе выше

def getDateToEpoch(myDateTime):
    res = (datetime.datetime(myDateTime.year,myDateTime.month,myDateTime.day,myDateTime.hour,myDateTime.minute,myDateTime.second) - datetime.datetime(1970,1,1)).total_seconds()
    return res

Вы можете обернуть возвращаемое значение следующим образом: str (int (res)) Чтобы вернуть его без десятичного значения для использования в качестве строки или просто int (без str)

0 голосов
/ 20 октября 2016

Это другое решение для скрытой даты и времени в unixtimestampmillis.

private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

    public static long GetCurrentUnixTimestampMillis()
    {
        DateTime localDateTime, univDateTime;
        localDateTime = DateTime.Now;          
        univDateTime = localDateTime.ToUniversalTime();
        return (long)(univDateTime - UnixEpoch).TotalMilliseconds;
    } 
...