날짜나 시간에 시간을 더하거나 빼야 할 때(오프셋 적용)는 datetime.datetime() 객체를 만든 다음, datetime.timedelta() 인스턴스를 더하거나 빼면 됩니다. timedelta 객체는 지속 기간(duration), 즉 두 날짜 또는 두 시각 사이의 차이를 나타내는 객체입니다.timedelta 생성자의 함수 시그니처는 다음과 같습니다.datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
컴퓨터의 UTC 오프셋이란 현재 컴퓨터에 설정된 시간대(timezone)를 의미합니다. Python에서는 기본 제공되는 time 모듈을 사용하면 이 시간대 정보를 손쉽게 확인할 수 있습니다. time.timezone 속성은 UTC 오프셋을 초 단위로 반환합니다.time 모듈 사용 예제import timeprint(-time.timezone) # 인도 시간대: +5:30실행 결과위 코드를 실행하면 다음과 같은 결과가 출력됩니다.19800인도의 시간대가 UTC+5:30이므로, 이를 초 단위로 환산하면 5 × 3600 + 30 × 60
Python으로 컴퓨터의 UTC 오프셋 확인하기 컴퓨터의 UTC 오프셋이란 운영체제에 설정되어 있는 시간대(timezone)를 의미합니다. Python에서는 기본 제공되는 time 모듈을 사용하면 이 정보를 손쉽게 얻을 수 있습니다. time.timezone 속성은 UTC 오프셋을 초 단위로 반환합니다. 방법 1: time 모듈 사용 import time print(-time.timezone) # 인도 표준시(IST): +5:30 출력 결과 19800 인도의 시간대는 UTC+5:30이므로, 이를 초로 환산하면 5 × 3600
Python에서 날짜와 시간을 다룰 때 시간대(timezone)를 가장 쉽게 처리하는 방법은 pytz와 tzlocal 모듈을 사용하는 것입니다. 이 두 라이브러리는 정확하고 플랫폼에 독립적인 시간대 계산을 가능하게 해줍니다.pytz는 Olson tz 데이터베이스를 Python으로 가져오는 라이브러리로, 서머타임(DST) 종료 시점에 발생하는 모호한 시간 문제도 해결해 줍니다. 관련된 자세한 내용은 Python 공식 라이브러리 레퍼런스의 datetime.tzinfo 문서에서 확인할 수 있습니다.라이브러리 설치사용하기 전에 먼저 아래
time.tzset() 메서드란 무엇인가? Python의 time.tzset() 메서드는 라이브러리 루틴에서 사용하는 시간 변환 규칙(time conversion rules)을 재설정하는 함수입니다. 이 메서드는 환경 변수 TZ의 값을 참조하여 새로운 시간대 규칙을 적용하며, 호출 시 다음과 같은 전역 변수들이 함께 갱신됩니다. tzname — TZ 환경 변수로부터 가져온 표준 시간대 이름 timezone — UTC 기준 서쪽 방향의 비(非) 서머타임 오프셋(초 단위) altzone — UTC 기준 서쪽 방향의 서머타임(DST)
파이썬에서는 calendar 모듈을 사용하면 특정 연도가 윤년(leap year)인지 아닌지를 아주 간단하게 확인할 수 있습니다. calendar 모듈에는 전용 함수인 isleap(year)가 내장되어 있으며, 이 함수는 인자로 받은 연도가 윤년이면 True를 반환하고, 윤년이 아니면 False를 반환합니다.사용 예제아래 예제에서는 세 개의 서로 다른 연도(1995, 2008, 2004)가 윤년인지 확인해 보겠습니다.import calendar print(calendar.isleap(1995)) print(calendar.islea
파이썬에서는 표준 라이브러리인 calendar 모듈을 사용하면 한 주가 어떤 요일부터 시작되는지 쉽게 확인하고 변경할 수 있습니다.calendar.firstweekday() 함수란?calendar 모듈에는 현재 설정된 한 주의 시작 요일을 반환하는 전용 함수인 firstweekday()가 있습니다. 이 함수는 별도의 인자 없이 호출하며, 반환값은 정수로 표현됩니다.요일은 다음과 같은 숫자로 매핑됩니다.0: 월요일 (Monday)1: 화요일 (Tuesday)2: 수요일 (Wednesday)3: 목요일 (Thursday)4: 금요일 (
Python에서는 표준 라이브러리인 calendar 모듈을 사용하여 특정 연도의 특정 월에 해당하는 달력을 아주 간단하게 출력할 수 있습니다. calendar.month() 함수에 연도(year)와 월(month)을 인수로 전달하기만 하면 됩니다.예제import calendar y = 2017 m = 11 print(calendar.month(y, m))출력 결과위 코드를 실행하면 다음과 같이 2017년 11월 달력이 출력됩니다. November 2017 Mo Tu We Th Fr Sa Su &nb
파이썬의 calendar 라이브러리에는 주어진 기간 동안의 윤일(leap day) 개수를 손쉽게 계산할 수 있는 전용 함수가 마련되어 있습니다.calendar.leapdays() 함수란?calendar.leapdays(y1, y2) 함수는 y1부터 y2까지의 연도 범위에 포함된 윤일의 총 개수를 반환합니다. 이때 시작 연도(y1)는 포함되고, 종료 연도(y2)는 제외된다는 점에 유의해야 합니다.사용 예제import calendarprint(calendar.leapdays(1995, 2018))실행 결과위 코드를 실행하면 다음과 같은
Python에서는 간단한 날짜 연산만으로 두 날짜 사이의 일 수를 쉽게 구할 수 있습니다. 먼저 일 수 차이를 구하고자 하는 두 날짜를 정의한 뒤, 두 날짜를 서로 빼면 timedelta 객체가 생성됩니다. 이 객체의 days 속성을 확인하면 원하는 결과, 즉 두 날짜 사이의 일 수를 얻을 수 있습니다.예제 코드from datetime import date d0 = date(2017, 8, 18) d1 = date(2017, 10, 26) delta = d1 - d0 print(delta.days)실행 결과위 코드를 실행하면 다음과
파이썬에서 한 달의 마지막 날을 구하려면 표준 라이브러리인 calendar 모듈을 사용하는 것이 가장 간단하고 확실한 방법입니다. 이 모듈은 특정 연도와 월에 대한 달력 정보를 손쉽게 조회할 수 있는 다양한 기능을 제공합니다. monthrange() 함수란? calendar.monthrange(year, month) 함수는 지정한 연도와 월에 대해 두 가지 정보를 튜플(tuple) 형태로 반환합니다. 첫 번째 값: 그 달 1일의 요일 (월요일=0, 화요일=1, ... , 일요일=6) 두 번째 값: 그 달의 총 일수 (28~31)
파이썬에서는 한 주의 첫 번째 요일(주 시작 요일)을 원하는 요일로 자유롭게 설정할 수 있습니다. calendar 모듈에는 setfirstweekday() 함수가 포함되어 있으며, 이 함수에 요일 코드를 인자로 전달하면 해당 요일이 한 주의 시작 요일로 지정됩니다.단, setfirstweekday()는 prmonth, TextCalendar 등 캘린더를 출력·표시하는 함수에만 영향을 미친다는 점에 유의해야 합니다.기본 사용 예제아래 예제에서는 먼저 기본 설정(월요일 시작)으로 2018년 1월 달력을 출력한 후, 시작 요일을 일요일로
Python에서 print 함수를 사용해 날짜를 직접 출력하면 우리가 원하는 일반적인 날짜 형식으로 표시됩니다.예제import datetime today = datetime.date.today() print(today)출력 결과다음과 같은 출력을 얻게 됩니다.2018-01-02이것이 바로 우리가 원하는 형식입니다. 하지만 이 날짜를 리스트에 추가한 후 출력하면 상황이 달라집니다.예제import datetime my_list = [] today = datetime.date.today() my_list.append(today) prin
Python에서는 datetime 모듈을 사용하여 날짜와 시간 객체를 UTC 타임스탬프로 손쉽게 변환할 수 있습니다. 이미 UTC 기준의 datetime 객체를 가지고 있다면 timestamp() 메서드를 호출하기만 하면 됩니다. 이 메서드는 해당 datetime 객체가 에포크(epoch, 1970년 1월 1일 00:00:00 UTC)로부터 경과한 시간을 초 단위로 반환합니다.UTC 시간대를 지정하여 변환하기만약 datetime 객체가 로컬 시간대로 되어 있다면, 먼저 시간대 정보를 UTC로 교체한 뒤 타임스탬프를 구해야 합니다.
Python에서 날짜 형식의 문자열 목록을 sort() 함수로 정렬하려면, 단순한 문자열 비교가 아닌 실제 날짜 기준으로 정렬해야 합니다. 이를 위해서는 각 날짜 문자열을 datetime 객체로 변환한 뒤 정렬하는 것이 가장 확실한 방법입니다.sort() 함수의 key 매개변수에 람다(lambda) 함수를 지정하면 됩니다. 이 람다 함수는 각 날짜 문자열을 datetime 객체로 만들어 주며, 정렬은 이 객체를 기준으로 수행됩니다.예제 코드from datetime import datetime my_dates = [5-Nov-18,
날짜에 대한 표준 JSON 형식은 존재하지 않습니다. 다만 JavaScript에는 사람이 읽기 쉽고, 올바르게 정렬되며, 밀리초 단위의 소수 초(시간 순서를 재구성하는 데 유용)를 포함하고 ISO 8601 표준을 준수하는 표준 날짜 형식이 있습니다.Python의 날짜 객체는 strftime 함수를 사용해 JavaScript 날짜 형식으로 변환할 수 있으며, 이 값을 필요로 하는 클라이언트 측에서 역직렬화(deserialize)하여 사용하면 됩니다.Python 3에서 isoformat() 함수 활용하기Python 3에서 ISO 860
파이썬에서는 간단한 날짜 계산을 통해 지난주 수요일에 해당하는 date 객체를 손쉽게 구할 수 있습니다. 핵심 아이디어는 오늘이 무슨 요일이든 상관없이, 오늘의 요일 값에서 2를 뺀 후 7로 나눈 나머지를 계산하면 지난주 수요일이 며칠 전인지 알 수 있다는 점입니다.여기서 2를 빼는 이유는 파이썬의 weekday() 메서드가 월요일을 0으로 시작하는 값을 반환하기 때문입니다. 즉, 수요일은 2에 해당합니다.예제 코드from datetime import date from datetime import timedelta today =
파이썬에서 문자열로 된 날짜 데이터를 datetime 객체로 변환해야 하는 경우가 자주 있습니다. 예를 들어 사용자 입력이나 CSV 파일에서 읽어온 29/12/2017 같은 날짜 문자열을 실제 날짜 타입으로 바꿔야 연산, 비교, 정렬 등 다양한 작업을 수행할 수 있습니다.strptime() 함수를 이용한 변환문자열을 datetime 객체로 변환하려면 datetime.strptime() 함수를 사용합니다. 이 함수는 두 개의 인자를 받습니다.date_str: 변환할 날짜 문자열format_str: 해당 문자열의 날짜 형식(포맷 코드)
파이썬에서 정수 형태의 UNIX 타임스탬프를 날짜 객체로 변환하려면 datetime 모듈의 fromtimestamp() 함수를 사용하면 됩니다. 이 함수는 타임스탬프 값을 인자로 받아 해당 시점에 대응하는 datetime 객체를 반환합니다.사용 예제import datetimetimestamp = datetime.datetime.fromtimestamp(1500000000)print(timestamp.strftime(%Y-%m-%d %H:%M:%S))실행 결과위 코드를 실행하면 다음과 같은 결과가 출력됩니다.2017-07-14 08:
파이썬에서는 datetime 라이브러리와 timedelta 객체를 활용하면 다음 월요일의 날짜를 아주 간단하게 구할 수 있습니다.핵심 로직은 다음과 같습니다. 먼저 오늘 날짜를 가져옵니다. 그다음 이번 주에 이미 지나간 요일 수(weekday 값)를 빼면 지난 월요일의 날짜가 됩니다. 마지막으로 timedelta 객체를 사용해 여기에 일주일을 더해주면, 바로 다음 월요일의 날짜를 얻을 수 있습니다.예제 코드import datetimetoday = datetime.date.today()next_monday = today + datet