Python에서만 datetime 개체를 날짜 문자열로 변환
날짜 문자열을 변환하면datetime
Python에서는 오브젝트입니다만, 그 반대로 하고 싶습니다.
나는 가지고 있다
datetime.datetime(2012, 2, 23, 0, 0)
현악기로 변환해서'2/23/2012'
.
strftime을 사용하여 날짜 형식을 지정할 수 있습니다.
예.,
import datetime
t = datetime.datetime(2012, 2, 23, 0, 0)
t.strftime('%m/%d/%Y')
결과:
'02/23/2012'
포맷에 대한 자세한 내용은 여기를 참조하십시오.
date
그리고.datetime
오브젝트(및time
또한)는 출력을 지정하기 위한 미니 언어를 지원하며, 다음 두 가지 방법으로 액세스 할 수 있습니다.
- 직접 메서드 호출:
dt.strftime('format here')
- 포맷 방식(표준 2.6+):
'{:format here}'.format(dt)
- f-module(표준 3.6+):
f'{dt:format here}'
예를 들어 다음과 같습니다.
dt.strftime('The date is %b %d, %Y')
'The date is {:%b %d, %Y}'.format(dt)
f'The date is {dt:%b %d, %Y}'
3가지 경우 모두 출력은 다음과 같습니다.
날짜는 2012년 2월 23일입니다.
완전성을 위해서: 오브젝트의 속성에 직접 액세스 할 수도 있습니다만, 다음의 수치만을 얻을 수 있습니다.
'The date is %s/%s/%s' % (dt.month, dt.day, dt.year)
# The date is 02/23/2012
미니 언어를 배우는 데 걸리는 시간은 가치가 있다.
참고로 미니 언어로 사용되는 코드는 다음과 같습니다.
%a
요일은 로케일의 약칭입니다.%A
주중에는 로케일의 풀네임으로 지정합니다.%w
주중에는 10진수(0은 일요일, 6은 토요일)를 지정합니다.%d
0 패드의 10진수로서의 요일.%b
로케일의 약어 이름으로서의 월입니다.%B
로케일의 전체 이름으로서의 월입니다.%m
0 패드의 10진수로 된 달. 01, ..., 12%y
세기가 없는 해는 0으로 채워진 10진수입니다.00, ..., 99%Y
세기를 십진수로 하는 해.1970, 1988, 2001, 2013%H
제로 패드의 10진수로서의 시간(24시간 시계).00, ..., 23%I
제로 패드의 10진수로서의 시간(12시간 시계). 01, ..., 12%p
로케일은 AM 또는 PM과 동일합니다.%M
0 패드로 채워진 10진수로서의 분.00, ..., 59%S
두 번째 패드는 0으로 채워진 10진수입니다.00, ..., 59%f
마이크로초(십진수)는 왼쪽에 0패드가 붙어 있습니다.000000, ..., 999999%z
UTC 오프셋은 +HHMM 또는 -HHM(naigive인 경우 공백), +0000, -0400, +1030 형식%Z
시간대 이름(순수일 경우 공백), UTC, EST, CST%j
제로 패드의 10진수로서의 요일.001, ..., 366%U
0 패딩된 10진수로 지정된 해의 주 번호(일요일이 첫 번째).%W
10진수로서 년도의 주 번호(월요일이 첫 번째).%c
로케일의 적절한 날짜 및 시간 표현.%x
로케일의 적절한 날짜 표시.%X
로케일은 적절한 시간 표현입니다.%%
'%'는 '%'
다른 옵션:
import datetime
now=datetime.datetime.now()
now.isoformat()
# ouptut --> '2016-03-09T08:18:20.860968'
datetime
형식을 생략할 수 있습니다.할 수 .datetime
str
이치노
In [1]: from datetime import datetime
In [2]: now = datetime.now()
In [3]: str(now)
Out[3]: '2019-04-26 18:03:50.941332'
In [5]: str(now)[:10]
Out[5]: '2019-04-26'
In [6]: str(now)[:19]
Out[6]: '2019-04-26 18:03:50'
지지음음음음음 음 AttributeError
가 「」인 None
에는 '아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,'None'
스트링
In [9]: str(None)[:19]
Out[9]: 'None'
간단한 문자열 포맷 방식을 사용할 수 있습니다.
>>> dt = datetime.datetime(2012, 2, 23, 0, 0)
>>> '{0.month}/{0.day}/{0.year}'.format(dt)
'2/23/2012'
>>> '%s/%s/%s' % (dt.month, dt.day, dt.year)
'2/23/2012'
type-specific formatting
를 사용할 수도 있습니다.
t = datetime.datetime(2012, 2, 23, 0, 0)
"{:%m/%d/%Y}".format(t)
출력:
'02/23/2012'
당신도 시간을 원한다면 그냥 같이 가요.
datetime.datetime.now().__str__()
★★★2019-07-11 19:36:31.118766
for (콘솔에서)
다음과 같이 날짜/시간을 문자열로 쉽게 변환할 수 있습니다.
from datetime import datetime
date_time = datetime(2012, 2, 23, 0, 0)
date = date_time.strftime('%m/%d/%Y')
print("date: %s" % date)
datetime을 문자열로 변환하기 위해 사용할 수 있는 패턴은 다음과 같습니다.
Python에서 문자열을 datetime으로 변환하고 datetime을 string으로 변환하는 방법에 대한 이 문서 또는 공식 문서를 참조하십시오.
지금까지 가장 섹시한 버전은 형식 문자열이다.
from datetime import datetime
print(f'{datetime.today():%Y-%m-%d}')
datetime 개체의 구성 요소를 직접 사용하여 datetime 개체를 문자열로 변환할 수 있습니다.
from datetime import date
myDate = date.today()
#print(myDate) would output 2017-05-23 because that is today
#reassign the myDate variable to myDate = myDate.month
#then you could print(myDate.month) and you would get 5 as an integer
dateStr = str(myDate.month)+ "/" + str(myDate.day) + "/" + str(myDate.year)
# myDate.month is equal to 5 as an integer, i use str() to change it to a
# string I add(+)the "/" so now I have "5/" then myDate.day is 23 as
# an integer i change it to a string with str() and it is added to the "5/"
# to get "5/23" and then I add another "/" now we have "5/23/" next is the
# year which is 2017 as an integer, I use the function str() to change it to
# a string and add it to the rest of the string. Now we have "5/23/2017" as
# a string. The final line prints the string.
print(dateStr)
출력 --> 2017년 5월 23일
날짜/시간을 문자열로 변환할 수 있습니다.
published_at = "{}".format(self.published_at)
" " " , " ,str.join
를 사용하여 문자열을 작성할 수 있습니다.
d = datetime.now()
'/'.join(str(x) for x in (d.month, d.day, d.year))
'3/7/2016'
향후 얼마나 멀리 떨어져 있는지에 대한 접근법
- 언어를
li
타임스탬프에 하는 리스트, 「」를 참조해 주세요.
from datetime import datetime
from dateutil import parser
t1 = parser.parse("Tue May 26 15:14:45 2021")
t2 = parser.parse("Tue May 26 15:9:45 2021")
# 5min
t3 = parser.parse("Tue May 26 11:14:45 2021")
# 4h
t4 = parser.parse("Tue May 26 11:9:45 2021")
# 1day
t6 = parser.parse("Tue May 25 11:14:45 2021")
# 1day4h
t7 = parser.parse("Tue May 25 11:9:45 2021")
# 1day4h5min
t8 = parser.parse("Tue May 19 11:9:45 2021")
# 1w
t9 = parser.parse("Tue Apr 26 11:14:45 2021")
# 1m
t10 = parser.parse("Tue Oct 08 06:00:20 2019")
# 1y7m, 19m
t11 = parser.parse("Tue Jan 08 00:00:00 2019")
# 2y4m, 28m
# create: date of object creation
# now: time now
# li: a list of string indicate time (in any language)
# lst: suffix (in any language)
# long: display length
def howLongAgo(create, now, li, lst, long=2):
dif = create - now
print(dif.days)
sec = dif.days * 24 * 60 * 60 + dif.seconds
minute = sec // 60
sec %= 60
hour = minute // 60
minute %= 60
day = hour // 24
hour %= 24
week = day // 7
day %= 7
month = (week * 7) // 30
week %= 30
year = month // 12
month %= 12
s = []
for ii, tt in enumerate([sec, minute, hour, day, week, month, year]):
ss = li[ii]
if tt != 0:
if tt == 1:
s.append(str(tt) + ss)
else:
s.append(str(tt) + ss + 's')
return ' '.join(list(reversed(s))[:long]) + ' ' + lst
t = howLongAgo(t1, t11, [
'second',
'minute',
'hour',
'day',
'week',
'month',
'year',
], 'ago')
print(t)
# 2years 4months ago
end_date = "2021-04-18 16:00:00"
end_date_string = end_date.strftime("%Y-%m-%d")
print(end_date_string)
언급URL : https://stackoverflow.com/questions/10624937/convert-datetime-object-to-a-string-of-date-only-in-python
'source' 카테고리의 다른 글
php의 데이터를 암호화/복호화하려면 어떻게 해야 합니까? (0) | 2022.10.29 |
---|---|
Node.js module.exports의 목적은 무엇이며 어떻게 사용합니까? (0) | 2022.10.29 |
어레이의 첫 번째 아이템 삭제(스택에서 팝핑 등) (0) | 2022.10.29 |
SQL - 업데이트가 있는 경우 그렇지 않은 경우 삽입 (0) | 2022.10.29 |
Google Map API v3 - 경계 및 중심 설정 (0) | 2022.10.29 |