본문 바로가기
파이썬

파이썬 Extract day of year and Julian day from a string date

by º기록 2021. 2. 1.
반응형

파이썬에 "2012.11.07" 문자열이 있습니다. 날짜 개체로 변환 한 다음 줄리안 일 의 정수 값을 가져와야합니다. 가능할까요?

 

해결 방법

 


>>> import datetime
>>> fmt = '%Y.%m.%d'
>>> s = '2012.11.07'
>>> dt = datetime.datetime.strptime(s, fmt)
>>> dt
datetime.datetime(2012, 11, 7, 0, 0)


>>> tt = dt.timetuple()
>>> tt.tm_yday
312

"줄리안 데이"라는 용어는 몇 가지 다른 의미를 가지고 있습니다. 2012312 를 찾는 경우 간접적으로 수행해야합니다 (예 : 다음 중 하나).

>>> int('%d%03d' % (tt.tm_year, tt.tm_yday))
2012312
>>> tt.tm_year * 1000 + tt.tm_yday
2012312

다른 의미를 찾고 있다면 여기에서 알아낼 수있을 것입니다. 예를 들어, "기원전 4713 년 1 월 1 일 이후 일"을 의미하고 그레고리력 연도 및 일이 필요한 공식이있는 경우 위의 두 값을 연결할 수 있습니다. 그레고리력의 년, 월, 일이 걸리므로 timetuple 단계도 필요하지 않습니다.) 거기에서 어디로 가야할지 알 수없는 경우 자세한 내용을 문의하십시오.


>>> sum(jdcal.gcal2jd(dt.year, dt.month, dt.day))
2456238.5


분수 율리우스 력 날짜 대신 적분 율리우스 력 날을 원하면 0으로, 음의 무한대로, 정오를 다음 날로 반올림하고, 정오를 짝수로 반올림하는 등 반올림 할 방향을 결정해야합니다. 율리우스 력 날짜는 기원전 4713 년 1 월 1 일 정오부터 시작하는 것으로 정의되므로 2012 년 11 월 7 일의 절반은 2456238이고 나머지 절반은 2456239이며 원하는 날짜는 본인 만 알고 있습니다…) 예를 들어 0으로 반올림하려면 다음을 수행합니다.

>>> int(sum(jdcal.gcal2jd(dt.year, dt.month, dt.day)))
2456238

 

참조 페이지 https://stackoverflow.com/questions/13943062

 

 

반응형

댓글