programing

timedelta를 총 초수로 변환

bestcode 2023. 2. 6. 23:35
반응형

timedelta를 총 초수로 변환

나는 시차가 있다.

import time
import datetime

time1 = datetime.datetime.fromtimestamp(time.mktime(time.gmtime()))
...
time2 = datetime.datetime.fromtimestamp(time.mktime(time.gmtime()))
diff = time2 - time1

그러면 경과한 총 초수를 어떻게 찾을 수 있을까요? diff.seconds일수는 중요하지 않아나는 할 수 있다:

diff.seconds + diff.days * 24 * 3600

이것은 내장된 방법이 있나요?

를 사용합니다.

>>> import datetime
>>> datetime.timedelta(seconds=24*60*60).total_seconds()
86400.0

어떤 식으로든 문제가 있습니다.datetime.datetime.fromtimestamp(time.mktime(time.gmtime()))표현.

(1) 2개의 인스턴스(instance)의 초단위의 차이만 필요한 경우, 매우 간단한 것은time.time()그 일을 해냅니다.

(2) 이러한 타임스탬프를 다른 목적으로 사용하고 있는 경우는, 그 결과 전체에 큰 냄새가 나기 때문에, 무엇을 하고 있는지를 고려할 필요가 있습니다.

gmtime()UTC 단위의 시간 태플을 반환하지만mktime()는 현지시간으로 시간 태플을 예상하고 있습니다.

저는 표준 TZ가 UTC+10인 호주 멜버른에 있습니다만, 서머타임이 내일 아침까지 유효하기 때문에 UTC+11입니다.아래를 실행했을 때는 현지시간으로 2011-04-02T20:31 이었습니다.UTC는 2011-04-02T09:31이었습니다.

>>> import time, datetime
>>> t1 = time.gmtime()
>>> t2 = time.mktime(t1)
>>> t3 = datetime.datetime.fromtimestamp(t2)
>>> print t0
1301735358.78
>>> print t1
time.struct_time(tm_year=2011, tm_mon=4, tm_mday=2, tm_hour=9, tm_min=31, tm_sec=3, tm_wday=5, tm_yday=92, tm_isdst=0) ### this is UTC
>>> print t2
1301700663.0
>>> print t3
2011-04-02 10:31:03 ### this is UTC+1
>>> tt = time.time(); print tt
1301736663.88
>>> print datetime.datetime.now()
2011-04-02 20:31:03.882000 ### UTC+11, my local time
>>> print datetime.datetime(1970,1,1) + datetime.timedelta(seconds=tt)
2011-04-02 09:31:03.880000 ### UTC
>>> print time.localtime()
time.struct_time(tm_year=2011, tm_mon=4, tm_mday=2, tm_hour=20, tm_min=31, tm_sec=3, tm_wday=5, tm_yday=92, tm_isdst=1) ### UTC+11, my local time

t3, 식 결과는 UTC+1로 UTC+(로컬 DST의 차이)로 표시됩니다.별로 의미가 없어요.를 사용하는 것을 검토해 주십시오.datetime.datetime.utcnow()이는 DST가 켜지거나 꺼질 때 1시간도 빠르게 진행되지 않으며 보다 정밀도가 향상될 수 있습니다.time.time()

2개의 datetime 객체의 차이를 취득하고 그 차이를 초수로 변환하는 보다 콤팩트한 방법을 다음에 나타냅니다(Python 3x).

from datetime import datetime
        
time1 = datetime.strftime('18 01 2021', '%d %m %Y')
    
time2 = datetime.strftime('19 01 2021', '%d %m %Y')

difference = time2 - time1

difference_in_seconds = difference.total_seconds()

mx를 사용할 수 있습니다.Date Time 모듈

import mx.DateTime as mt

t1 = mt.now() 
t2 = mt.now()
print int((t2-t1).seconds)

언급URL : https://stackoverflow.com/questions/5522031/convert-timedelta-to-total-seconds

반응형