파이썬/파이썬(python) 중급

[37-5 파이썬] 6단계 datetime 모듈, strftime()

Olivia-BlackCherry 2022. 9. 30. 06:35

datetime 모듈을 이용하면

연도, 달, 날짜, 시간에 관한 정보를 쉽게 얻을 수 있다. 

 

만약 지정된 날짜를 지정하면 해당 날짜에 대한 정보를 datetime 모듈 형식으로 출력한다.

import datetime
yesterday = datetime.datetime(year=2022, month=9, day=28)
print(yesterday)

>>2022-09-28 00:00:00

 

 

날짜 지정없이

datetime 모듈의, datetime 클래스에서, 오늘(today) 정보를 출력해보자.

import datetime
today = datetime.datetime.today()

>>2022-09-30 06:06:05.647800

 

 

연도, 달, 날짜를 각각 뽑아보자.

year = datetime.datetime.today().year
month= datetime.datetime.today().month
day= datetime.datetime.today().day

>> 2022

9

30

 

 

만약 내가 출력하고 싶은 날짜 형식이 20220930 같은 형태이라면,

우리가 배운 파이썬 문법을 이용하여

아래와 같이 코딩할 수 있다.

if 0<month<10:
    month = "0" + str(month)
if 0<day<10:
    day = "0" + str(month)
date = str(year) + str(month) + str(day)
print(date)

>>20220930

 

 

그런데, 

매번 이렇게 긴 코드를 작성하기는 번거롭다. 

그래서 우리가 원하는 형식으로 날짜와 시간을 출력해주는

아주 유용한 메소드를 소개한다. 

 

 

strftime()

strftime 메소드는 날짜를 기본 형식에서 다른 문자열 형태로 출력해준다. 

format이라는 하나의 파라미터를 갖는다. 

바꿀날짜형식.strftime("?")

"?"에 들어갈 내용은 '내가 원하는 형식'이다. 

 

예를 들어 %a를 넣으면 요일이 영어로 짧게 표시되어 나온다.  Wed

%A를 넣으면 풀네임으로 나온다. Wednesday

출처: w3school.com

import datetime
today = datetime.datetime.today()
str_f_time = today.strftime("%Y%m%d")
print(str_f_time)

>>20220930

 

 

f 스트링처럼 중간 형식을 내 마음대로 디자인할 수도 있다.

today = datetime.datetime.today()
str_f_time = today.strftime("%Y ^^ %m ^^ %d")
print(str_f_time)

>>2022 ^^ 09 ^^ 30

 

 

<최종코드>

import requests

endpoint="https://pixe.la/v1/users"
parameters = {
    "token": "safjklasfddsafsfadf",
    "username":"oliviaasfas",
    "agreeTermsOfService":"yes",
    "notMinor": "yes"
}
# response = requests.post(url =endpoint, json =parameters)
# print(response.text)


graph_endpoint =f"https://pixe.la/v1/users/{parameters['username']}/graphs"
headers = {
    "X-USER-TOKEN": parameters["token"],
}
gragh_parameters ={
    "id": "olivia12345",
    "name": "olivia",
    "unit": "calory",
    "type": "float",
    "color": "momiji"
}
# response=requests.post(url=graph_endpoint, headers=headers, json=gragh_parameters)
# print(response.text)

#데이터픽셀 넣기
import time
yesterday = datetime.datetime(year=2022, month=9, day=28)
yesterday = yesterday.strftime("%Y%m%d")
pixel_endpoint = f"https://pixe.la/v1/users/{parameters['username']}/graphs/{gragh_parameters['id']}"
headers = {
    "X-USER-TOKEN": parameters["token"],
}

pixel_parameters={
    "date": yesterday,
    "quantity": "3023"
}

response = requests.post(url=pixel_endpoint, headers=headers, json=pixel_parameters)
print(response.text)