티스토리 뷰
오늘 날짜를 출력하는 두가지 방법
from datetime import datetime
print((datetime.date.today().isoformat()))
결과
2019-10-06
datetime.datetime.now()
결과
2019-10-06 03:24:17.268870
날짜 더하기(+3초 하기)
현재 시간에 +1시간 하기, +7일 하기 등 날짜를 더하고 빼야 할 때 datetime.timedelta()를 사용 합니다.
now = datetime.datetime.now()
print(now)
now += datetime.timedelta(seconds=3)
print(now)
결과
2019-10-06 03:28:11.035275
2019-10-06 03:28:14.035275
결과 해설
2019-10-06 03:28:11로 11초 였는데 +3초가 된 2019-10-06 03:28:14 로 바뀌었습니다.
날짜 더하기 1일
timedelta는 seconds뿐만 아니라 days, seconds, microseconds, milliseconds, minutes, hours, weeks를 지원 합니다.
아래는 day를 더하고 포메팅까지 하는 예제 입니다.
import datetime
day_cnt = 1
date = datetime.datetime.now() + datetime.timedelta(days=day_cnt).strftime("%Y%m%d")
날짜 포메팅 하기
날짜 포멧팅은 날짜의 표시 형식을 바꿔주는 것입니다. 일단은 시, 분, 초를 각각 뽑으면 원하는 대로 포메팅 할 수 있겠지요?
now = datetime.datetime.now()
print(now)
print(now.hour)
print(now.minute)
print(now.second)
결과
2019-10-06 13:05:57.835130
13
5
57
문자열을 datetime으로 파싱
'%Y%m%d'는 yymmdd형식의 문자열을 datetime으로 파싱합니다. 날짜 형식에 -이나 .등이 추가 되어 있다면 '%Y-%m-%d', '%Y.%m.%d' 등을 이용 할 수 있습니다.
from datetime import datetime
dt = datetime.strptime(str(item['delngDe']), '%Y%m%d')
문자열을 timestamp로
.timestamp()함수는 결과를 float으로 return합니다. 필요하다면 int()로 파싱해서 소수점을 자를 수 있습니다.
from datetime import datetime
dt = datetime.strptime('20200102', '%Y%m%d')
tst = datetime.timestamp(dt)
결과
1577890800.0
timestamp를 datetime으로
.timestamp()함수를 썼다면 int()로 형변환 해준후 .fromtimestamp()를 사용합니다.
dt = datetime.strptime('20200102', '%Y%m%d')
tst = int(datetime.timestamp(dt))
datetime.fromtimestamp(tst)
날짜 YYmmdd_HHMMSS로 포메팅 하기
파이썬에서 지원하는 포메팅 형식을 쓸때는 아래와 같이 사용합니다.
now = datetime.datetime.now()
formattedDate = now.strftime("%Y%m%d_%H%M%S")
print(formattedDate)
결과
20191006_130557
요일 출력하기
.weekday()는 월화수목금토일을 각각 0123456으로 출력을 해줍니다.
from datetime import datetime
print(datetime.now())
print(datetime.now().weekday())
결과
2021-04-27 01:10:36.677706
1
결과 해석
결과에나온 4월 27일은 화요일 입니다. 화요일은 1이기 때문에 결과에 1이 출력 되었습니다.
날짜 생성하기
20200101부터 20200315까지 날짜 생성하기
import pandas as pd
rct3 = pd.date_range(start='20200101', end='20200315')
dt_list = rct3.strftime("%Y%m%d").to_list()
print(dt_list)
결과
['20200101', '20200102', '20200103', '20200104', '20200105', '20200106', '20200107', '20200108', '20200109',
...중략...
'20200304', '20200305', '20200306', '20200307', '20200308', '20200309', '20200310', '20200311', '20200312',
'20200313', '20200314', '20200315']
7일 날짜 생성하기
days=6을 생성한 이유는 +6을 더해야 7일이 생성되기 때문
class WeeklyWorkPlan:
dt_list = []
start_date = '2022-09-01'
def set_dates(self):
dt = datetime.strptime(self.start_date, '%Y-%m-%d') + timedelta(days=6)
rct3 = pd.date_range(start=datetime.strptime(self.start_date, '%Y-%m-%d'), end=dt.strftime("%Y%m%d"))
dt_list = rct3.strftime("%Y-%m-%d").to_list()
self.dt_list = dt_list
결과
['2022-09-01', '2022-09-02', '2022-09-03', '2022-09-04', '2022-09-05', '2022-09-06', '2022-09-07']
월화수목금토일 생성
앞에 코드에 이어서 형식을 "%A"로 주면 Sunday, Monday형식의 요일을 얻을 수 있습니다.
class WeeklyWorkPlan:
dt_list = []
days_of_week = []
start_date = '2022-09-01'
def set_dates(self):
dt = datetime.strptime(self.start_date, '%Y-%m-%d') + timedelta(days=6)
week = pd.date_range(start=datetime.strptime(self.start_date, '%Y-%m-%d'), end=dt.strftime("%Y%m%d"))
dt_list = week.strftime("%Y-%m-%d").to_list()
self.days_of_week = week.strftime("%A").to_list()
self.dt_list = dt_list
print(self.dt_list)
print(self.days_of_week)
결과
['2022-09-01', '2022-09-02', '2022-09-03', '2022-09-04', '2022-09-05', '2022-09-06', '2022-09-07']
['Thursday', 'Friday', 'Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday']
'Language > Python' 카테고리의 다른 글
pandas loc, apply적용 예제 (0) | 2020.03.25 |
---|---|
python3 ssl인증 Basic통과 하기 (0) | 2019.10.15 |
제자반 자리배치 프로그램 (0) | 2019.09.23 |
setuptools.find_packages()이용해 패키지 찾기 (0) | 2019.09.10 |
파이썬 셀레늄(selenium) webdriver자동 설치, 인스타 접속, 기다리기, 스크롤 내리기 (0) | 2019.04.27 |
- Total
- Today
- Yesterday
- shellscript
- 도커티슈박스
- 도커각티슈케이스
- Sh
- 싱가폴
- 이직
- 도커티슈케이스
- docker container tissue
- vim
- 도커컨테이너
- docker container whale
- 2017 티스토리 결산
- Linux
- 도커각티슈박스
- docker container
- docker container case
- docker container tissue box
- 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |