Python 향후 5분 후 unix 타임스탬프 생성
5분 후에 "Expires" 값을 작성해야 하는데 UNIX Timestamp 형식으로 입력해야 합니다.아직까지는 가지고 있지만 해킹인 것 같아요.
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
타임스탬프를 변환하는 모듈이나 기능이 있나요?
또 다른 방법은 다음과 같습니다.
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()
중요한 것은 변환을 시작하기 전에 사용하고 있는 모든 날짜가 utc 시간대에 있는지 확인하는 것입니다.적절한 방법에 대해서는, http://pytz.sourceforge.net/ 를 참조해 주세요.utc로 정규화함으로써 서머타임 전환의 애매함을 해소할 수 있습니다.그런 다음 timedelta를 사용하여 Unix Epoch로부터의 거리를 안전하게 계산한 다음 초 또는 밀리초로 변환할 수 있습니다.
그 결과, unix 타임스탬프는 UTC 타임 존내의 타임스탬프 그 자체입니다.현지화된 시간대로 타임스탬프를 표시하려면 다른 변환을 수행해야 합니다.
또한 1970년 이후의 날짜에만 사용할 수 있습니다.
import datetime
import pytz
UNIX_EPOCH = datetime.datetime(1970, 1, 1, 0, 0, tzinfo = pytz.utc)
def EPOCH(utc_datetime):
delta = utc_datetime - UNIX_EPOCH
seconds = delta.total_seconds()
ms = seconds * 1000
return ms
다음은 위의 답변(및 밀리초 동안의 수정)에 근거한 것으로, 에뮬레이트 합니다.datetime.timestamp()
Python 3보다 이전 버전에서는 타임존을 사용합니다.
def datetime_timestamp(datetime):
'''
Equivalent to datetime.timestamp() for pre-3.3
'''
try:
return datetime.timestamp()
except AttributeError:
utc_datetime = datetime.astimezone(utc)
return timegm(utc_datetime.timetuple()) + utc_datetime.microsecond / 1e6
질문에 정확하게 답변하려면 다음과 같이 하십시오.
datetime_timestamp(my_datetime) + 5 * 60
datetime_timestamp
단순 날짜의 일부입니다.그러나 이 패키지를 사용하는 경우 다음과 같이 입력합니다.
SimpleDate(my_datetime).timestamp + 5 * 60
my_datetime에 대해 더 많은 형식/유형을 처리합니다.
def expiration_time():
import datetime,calendar
timestamp = calendar.timegm(datetime.datetime.now().timetuple())
returnValue = datetime.timedelta(minutes=5).total_seconds() + timestamp
return returnValue
솔루션에는timedelta.total_seconds()
python-2.7+로 동작합니다.사용하다calendar.timegm(future.utctimetuple())
Python의 하위 버전용입니다.
타임스탬프 기능을 내장한 이 방법은 어떻습니까?스니펫은 현재 시간뿐만 아니라 다른 시간에도 작동합니다.
import datetime
a = "2017-01-01 14:30:00"
b = datetime.datetime.strptime(a, '%Y-%m-%d %H:%M:%S')
c = int(b.timestamp()/60.0)
alarm_time = c + 5
런타임 환경 OS: Ubuntu 16.04 Python 3.6
언급URL : https://stackoverflow.com/questions/2775864/python-create-unix-timestamp-five-minutes-in-the-future
'programing' 카테고리의 다른 글
자바스크립트 인코딩과 동등한 자바동일한 출력을 생성하는 URIC 컴포넌트? (0) | 2023.01.03 |
---|---|
통화 환율에 프로그래밍 방식으로 액세스 (0) | 2023.01.03 |
기본 동작을 깨지 않고 Python에서 __getattr__을(를) 덮어쓰려면 어떻게 해야 합니까? (0) | 2022.12.29 |
SQL - 이중 행이 있는 경우에만 행 선택 (0) | 2022.12.29 |
쿠베르네테스 마리아드브 갈레라 단일 노드 (0) | 2022.12.29 |