파이썬의 time.time ()은 로컬 또는 UTC 타임 스탬프를 반환합니까?
않습니다 time.time()
파이썬 시간 모듈에서 시스템의 시간 또는 UTC에서 시간을 반환?
이 time.time()
함수는 에포크 이후 초 수를 초 단위로 반환합니다. "epoch"는 1970 년 1 월 1 일의 시작으로 UTC로 정의됩니다. 따라서이 에포크 (epoch)는 UTC로 정의되며 글로벌 시간을 설정합니다. "epoch 지난 시간"(time.time ())이 어디에 있든지 같은 순간에 같은 값을 반환합니다.
다음은 컴퓨터에서 실행 한 일부 샘플 출력이며 문자열로 변환합니다.
Python 2.7.3 (default, Apr 24 2012, 00:00:54)
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> ts = time.time()
>>> print ts
1355563265.81
>>> import datetime
>>> st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
>>> print st
2012-12-15 01:21:05
>>>
ts
변수는 초 단위로 반환되는 시간입니다. 그런 다음 datetime
라이브러리를 사용하여 문자열을 사람이 읽을 수있는 문자열 로 변환했습니다 .
텍스트 파일에서 사용할 수 있는 타임 스탬프 의 텍스트 형식입니다 . (과제의 제목은 과거에 달라졌으므로이 답변에 대한 소개가 시간으로 해석 될 수있는 방법을 명확히하기 위해 변경되었습니다. [업데이트 2016-01-14]
당신은 사용하여 문자열로 타임 스탬프를 얻을 수 있습니다 .now()
또는 .utcnow()
의를 datetime.datetime
:
>>> import datetime
>>> print datetime.datetime.utcnow()
2012-12-15 10:14:51.898000
now
에서 다릅니다 utcnow
: 그렇지 않으면 같은 방식으로 작동 - 예상대로
>>> print datetime.datetime.now()
2012-12-15 11:15:09.205000
타임 스탬프를 문자열에 명시 적으로 렌더링 할 수 있습니다.
>>> str(datetime.datetime.now())
'2012-12-15 11:15:24.984000'
또는 타임 스탬프의 형식을 원하는 방식으로 명시 적으로 지정할 수 있습니다.
>>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 15. December 2012 11:19AM'
ISO 형식을 원하면 .isoformat()
객체 의 방법을 사용하십시오 .
>>> datetime.datetime.now().isoformat()
'2013-11-18T08:18:31.809000'
변환없이 계산 및 인쇄를 위해 변수에이를 사용할 수 있습니다.
>>> ts = datetime.datetime.now()
>>> tf = datetime.datetime.now()
>>> te = tf - ts
>>> print ts
2015-04-21 12:02:19.209915
>>> print tf
2015-04-21 12:02:30.449895
>>> print te
0:00:11.239980
#squiguy의 답변을 기반으로 진정한 타임 스탬프를 얻으려면 float에서 캐스트하십시오.
>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318
적어도 그것이 개념입니다.
대답은 둘 다 또는 둘 다일 수 있습니다.
none :
time.time()
Epoch 이후 경과 된 시간 (초)을 반환합니다. 결과는 시간대에 의존하지 않으므로 UTC 또는 현지 시간이 아닙니다. 다음 은 "에포크 이후 두 번째"에 대한 POSIX 정의입니다 .둘 다 :
time.time()
시스템의 시계가 동기화 될 필요가 없으므로 값을 반영합니다 (현지 시간대와 아무런 관련이 없지만). 컴퓨터마다 다른 결과가 동시에 나타날 수 있습니다. 반면에 컴퓨터 시간 이 동기화되면 타임 스탬프에서 UTC 시간을 쉽게 얻을 수 있습니다 (윤리 초를 무시하면).from datetime import datetime utc_dt = datetime.utcfromtimestamp(timestamp)
다양한 Python 버전에서 UTC 시간에서 타임 스탬프를 얻는 방법은 UTC에 따라 에포크 이후 날짜를 초로 변환하려면 어떻게합니까?를 참조하십시오.
나는 결국 정착했다.
>>> import time
>>> time.mktime(time.gmtime())
1509467455.0
특정 시간대에는 "에포크"와 같은 것이 없습니다. 신기원은 특정 시점으로 잘 정의되어 있으므로 시간대를 변경하면 시간 자체도 변경됩니다. 구체적으로이 시간은 Jan 1 1970 00:00:00 UTC
입니다. 따라서 time.time()
에포크 이후 초 수를 반환합니다.
타임 스탬프는 항상 utc의 시간이지만 호출 datetime.datetime.fromtimestamp
하면이 타임 스탬프에 해당하는 현지 시간대로 시간이 반환되므로 결과는 로캘에 따라 다릅니다.
>>> import time, datetime, arrow
>>> time.time()
1564494136.0434234
>>> datetime.datetime.now()
datetime.datetime(2019, 7, 30, 16, 42, 3, 899179)
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2019, 7, 30, 16, 43, 12, 4610)
arrow
다른 행동을 가진 멋진 도서관 이 있습니다. 같은 경우 UTC 시간대를 사용하여 시간 객체를 반환합니다.
>>> arrow.now()
<Arrow [2019-07-30T16:43:27.868760+03:00]>
>>> arrow.get(time.time())
<Arrow [2019-07-30T13:43:56.565342+00:00]>
'development' 카테고리의 다른 글
그런트 시계 오류-대기 중… 치명적인 오류 : ENOSPC 시계 (0) | 2020.02.11 |
---|---|
.NET 4.0 프로젝트에서 .NET 2.0 혼합 모드 어셈블리를 참조하려면 어떤 '추가 구성'이 필요합니까? (0) | 2020.02.11 |
문자열에서 각 단어의 첫 글자를 대문자로 바꾸는 방법 (Python)? (0) | 2020.02.11 |
Android에서 URL로 ImageView를로드하는 방법은 무엇입니까? (0) | 2020.02.11 |
안드로이드 : 이름을 사용하여 리소스에서 문자열을 얻는 방법은 무엇입니까? (0) | 2020.02.11 |