[python] pytz를 사용하여 특정 시간대의 일출 및 일몰 시간을 구하는 방법은 무엇인가요?
- pytz 설치하기:
pip install pytz
- 필요한 모듈 가져오기:
import pytz from datetime import datetime import requests
- 원하는 도시의 위도와 경도를 얻기 위해 Geocoding API를 사용합니다. 예를 들어, 서울의 좌표는 다음과 같습니다:
latitude = 37.5665 longitude = 126.9780
- 일출 및 일몰 정보를 가져오는 함수를 작성합니다:
def get_sunrise_sunset_time(latitude, longitude): # 현재 시간을 UTC로 설정 utc_now = datetime.utcnow() # pytz에서 사용할 타임존을 설정합니다 local_timezone = pytz.timezone('Asia/Seoul') # 현재 시간을 타임존에 맞게 설정합니다 local_now = utc_now.replace(tzinfo=pytz.utc).astimezone(local_timezone) # 일출 및 일몰 시간을 알아내기 위해 다음 API를 사용합니다 url = f'https://api.sunrise-sunset.org/json?lat={latitude}&lng={longitude}&date={local_now.strftime("%Y-%m-%d")}' response = requests.get(url) # 응답 결과에서 일출 및 일몰 시간을 추출합니다 result = response.json() sunrise = result['results']['sunrise'] sunset = result['results']['sunset'] return sunrise, sunset
- 위에서 작성한 함수를 호출하여 일출 및 일몰 시간을 출력합니다:
latitude = 37.5665 longitude = 126.9780 sunrise, sunset = get_sunrise_sunset_time(latitude, longitude) print(f'일출 시간: {sunrise}') print(f'일몰 시간: {sunset}')
위의 예제 코드를 사용하면 pytz를 활용하여 특정 시간대의 일출 및 일몰 시간을 구할 수 있습니다. 원하는 도시의 위도와 경도를 사용하여 일출 및 일몰 API에서 정보를 가져옵니다. 이를 위해 requests 모듈을 사용합니다. 결과로 얻은 시간은 해당 시간대의 로컬 시간으로 표시됩니다.