2011-08-30 28 views

Respuesta

70

Eso debería hacerlo

import time 

date_time = '29.08.2011 11:05:02' 
pattern = '%d.%m.%Y %H:%M:%S' 
epoch = int(time.mktime(time.strptime(date_time, pattern))) 
print epoch 
+7

Esto funciona solo para la zona horaria de su servidor. – eumiro

+1

dado que se usa mktime, ¿eso significa que debe ajustar la época devuelta a UTC? – ChuckCottrill

+0

¡Gracias por la respuesta! Upvoted. –

2

Uso strptime para analizar el tiempo, y llamar time() en él para obtener la marca de tiempo Unix.

10

Suponiendo que usted está utilizando un formato de 24 horas:

import time; 
t = time.mktime(time.strptime("29.08.2011 11:05:02", "%d.%m.%Y %H:%M:%S")); 
4
import time 
def expires(): 
    '''return a UNIX style timestamp representing 5 minutes from now''' 
    return int(time.time()+300) 
9
Your code will behave strange if 'TZ' is not set properly, e.g. 'UTC' or 'Asia/Kolkata' 

So, you need to do below 

>>> import time, os 
>>> d='2014-12-11 00:00:00' 
>>> p='%Y-%m-%d %H:%M:%S' 
>>> epoch = int(time.mktime(time.strptime(d,p))) 
>>> epoch 
1418236200 
>>> os.environ['TZ']='UTC' 
>>> epoch = int(time.mktime(time.strptime(d,p))) 
>>> epoch 
1418256000 
+0

Un error tipográfico, el fragmento de código debe ser: os.environ ['TZ'] = 'UTC'. Tenga en cuenta que la tecla TZ está adornada con ' – sateesh

2

si quieres UTC probar algunos de los gm funciones:

import time 
import calendar 

date_time = '29.08.2011 11:05:02' 
pattern = '%d.%m.%Y %H:%M:%S' 
utc_epoch = calendar.timegm(time.strptime(date_time, pattern)) 
print utc_epoch 
Cuestiones relacionadas