파이썬으로 6 월 16 일 (wk24)의 현재 주 번호를 확인하는 방법은 무엇입니까?
답변
datetime.date
isocalendar()
달력 주를 포함하는 튜플을 반환 하는 메서드 가 있습니다 .
>>> import datetime
>>> datetime.date(2010, 6, 16).isocalendar()[1]
24
datetime.date.isocalendar () 는 주어진 날짜 인스턴스에 대해 연도, 주 번호 및 주일을 포함하는 튜플을 반환하는 인스턴스 메소드입니다.
답변
datetime에서 주 번호를 문자열로 직접 가져올 수 있습니다.
>>> import datetime
>>> datetime.date(2010, 6, 16).strftime("%V")
'24'
또한 다음에 대한 strftime
매개 변수를 변경하여 연중 주 번호의 다른 “유형”을 얻을 수 있습니다 .
%U
– 연도의 주 번호 (일요일의 첫 번째 요일) 를 0으로 채워진 10 진수로 나타냅니다. 첫 번째 일요일 이전의 새해의 모든 날은 0 주로 간주됩니다. 예 : 00 , 01,…, 53
%W
-연도의 주 번호 ( 월요일 의 첫 번째 요일)를 10 진수로 나타냅니다. 첫 번째 월요일 이전의 새해의 모든 날은 0 주로 간주됩니다. 예 : 00 , 01,…, 53[…]
( Python 3.6에 추가되어 일부 배포판의 Python 2.7로 백 포트 됨 ) 편의를 위해 C89 표준에 필요하지 않은 몇 가지 추가 지시문이 포함되어 있습니다. 이 매개 변수는 모두 ISO 8601 날짜 값에 해당합니다. 이
strftime()
방법 과 함께 사용하면 일부 플랫폼에서 사용하지 못할 수 있습니다 .[…]
%V
– 월요일을 요일의 첫 번째 요일 로하는 10 진수 ISO 8601 주. 01주는 1 월 4 일이 포함 된 주입니다. 예 : 01 , 02,…, 53
나는에서 그것에 대해 발견했습니다 여기에 . 그것은 파이썬 2.7.6에서 나를 위해 일했습니다.
답변
나는 date.isocalendar()
대답이 될 것이라고 믿습니다 . 이 기사 는 ISO 8601 캘린더의 기본 원리를 설명합니다. Python 문서 의 datetime 페이지 에서 date.isocalendar () 부분을 확인하십시오 .
>>> dt = datetime.date(2010, 6, 16)
>>> wk = dt.isocalendar()[1]
24
.isocalendar ()는 (year, wk num, wk day)로 3 튜플을 반환합니다. dt.isocalendar()[0]
연도, dt.isocalendar()[1]
주 번호, dt.isocalendar()[2]
요일을 반환합니다. 가능한 한 간단합니다.
답변
다른 옵션이 있습니다.
import time
from time import gmtime, strftime
d = time.strptime("16 Jun 2010", "%d %b %Y")
print(strftime("%U", d))
인쇄합니다 24
.
참조 : http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior
답변
다른 사람들이 제안한 ISO 주간은 좋은 것이지만 귀하의 요구에 맞지 않을 수도 있습니다. 매주 월요일로 시작한다고 가정하여 연말과 말에 흥미로운 예외가 발생합니다.
요일에 관계없이 1 주차가 항상 1 월 1 일부터 1 월 7 일까지 인 정의를 사용하려면 다음과 같이 파생을 사용하십시오.
>>> testdate=datetime.datetime(2010,6,16)
>>> print(((testdate - datetime.datetime(testdate.year,1,1)).days // 7) + 1)
24
답변
일반적으로 현재 주 번호를 얻으려면 (일요일부터 시작) :
from datetime import *
today = datetime.today()
print today.strftime("%U")
답변
연중 순간의 정수 값에 대해 다음을 시도하십시오.
import datetime
datetime.datetime.utcnow().isocalendar()[1]