앞으로 5 분 안에 “Expires”값을 만들어야하지만 UNIX 타임 스탬프 형식으로 제공해야합니다. 나는 지금까지 이것을 가지고 있지만 해킹처럼 보인다.
def expires():
'''return a UNIX style timestamp representing 5 minutes from now'''
epoch = datetime.datetime(1970, 1, 1)
seconds_in_a_day = 60 * 60 * 24
five_minutes = datetime.timedelta(seconds=5*60)
five_minutes_from_now = datetime.datetime.now() + five_minutes
since_epoch = five_minutes_from_now - epoch
return since_epoch.days * seconds_in_a_day + since_epoch.seconds
타임 스탬프 변환을 수행하는 모듈이나 함수가 있습니까?
답변
다른 방법은 다음을 사용하는 것입니다 calendar.timegm
.
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
return calendar.timegm(future.timetuple())
또한 %s
플래그 보다 이식성이 뛰어납니다 strftime
(Windows에서는 작동하지 않음).
답변
이제 Python> = 3.3 에서는 timestamp () 메서드 를 호출하여 타임 스탬프를 부동 소수점으로 가져올 수 있습니다.
import datetime
current_time = datetime.datetime.now(datetime.timezone.utc)
unix_timestamp = current_time.timestamp() # works if Python >= 3.3
unix_timestamp_plus_5_min = unix_timestamp + (5 * 60) # 5 min * 60 seconds
답변
이걸 찾았고 더 짧았습니다.
import time
def expires():
'''return a UNIX style timestamp representing 5 minutes from now'''
return int(time.time()+300)
답변
이것이 당신이 필요로하는 것입니다 :
import time
import datetime
n = datetime.datetime.now()
unix_time = time.mktime(n.timetuple())
답변
형식 문자열을 datetime.strftime
사용하여 Epoch 형식으로 시간을 얻는 데 사용할 수 있습니다 %s
.
def expires():
future = datetime.datetime.now() + datetime.timedelta(seconds=5*60)
return int(future.strftime("%s"))
참고 : 이것은 Linux에서만 작동 하며이 방법은 표준 시간대에서는 작동하지 않습니다.
답변
다음 datetime
은 datetime 객체에서 posix 타임 스탬프로 변환 하는 덜 깨진 기반 솔루션입니다.
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
return (future - datetime.datetime(1970, 1, 1)).total_seconds()
Python에서 datetime.date를 UTC 타임 스탬프 로 변환 에서 자세한 내용을 참조하십시오 .
답변
def in_unix(input):
start = datetime.datetime(year=1970,month=1,day=1)
diff = input - start
return diff.total_seconds()