Python strftime - 선행 0이 없는 날짜?
Python 사를 strftime
, 즉 10일 이전이라면 날짜의 처음 0을 제거할 방법이 있는가?01
이다1
? 찾을 수 없음%
그런 거에 대해서?
고마워!
사실 나도 같은 문제가 있었는데, 그 사이에 하이픈을 붙이면 그 사실을 깨달았다.%
그리고 글자는 선행 0을 제거할 수 있다.
예를 들면%Y/%-m/%-d
.
이는 Windows(Cygwin 포함)가 아닌 Unix(리눅스, OS X)에서만 작동한다.#
, 예:%Y/%#m/%#d
.
python2 이후 방법이 등장하면서 우리는 이런 종류의 일을 할 수 있다.6:
>>> import datetime
>>> '{dt.year}/{dt.month}/{dt.day}'.format(dt = datetime.datetime.now())
'2013/4/19'
비록 원래의 질문의 범위를 벗어나더라도, 더 흥미로운 포맷을 위해 다음과 같은 것들을 할 수 있다.
>>> '{dt:%A} {dt:%B} {dt.day}, {dt.year}'.format(dt=datetime.datetime.now())
'Wednesday December 3, 2014'
그리고 python3.6을 기준으로 인라인 형식의 문자열로 표현할 수 있다.
Python 3.6.0a2 (v3.6.0a2:378893423552, Jun 13 2016, 14:44:21)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> dt = datetime.datetime.now()
>>> f'{dt:%A} {dt:%B} {dt.day}, {dt.year}'
'Monday August 29, 2016'
은 日本語의 할 수 .%
http://docs.python.org/library/time.html에 따르면, 편지(예: 월 1일 d)는 휴대할 수 없는 솔루션이지만(예: 내 Mac에서는 작동하지 않음).아마도 당신은 그 후에 문자열 교체(또는 RE, 정말 고약한 포맷을 위해)를 사용할 수 있을 것이다.strftime
치료하기 위해?
>>> y
(2009, 5, 7, 17, 17, 17, 3, 127, 1)
>>> time.strftime('%Y %m %d', y)
'2009 05 07'
>>> time.strftime('%Y %m %d', y).replace(' 0', ' ')
'2009 5 7'
다음은 다음에서 지원되는 수식어 문서strftime()
GNU C 도서관에서. (앞서 사람들이 말했듯이, 그것은 휴대할 수 없을지도 모른다.)다음과 같은 것이 귀하에게 흥미로울 수 있다.
%e
대신에%d
을 스페이스 0 으로 한다.
내 Python(Linux에서.나는 그것이 너의 몸에 잘 맞을지 모르겠다.
>>> import datetime
>>> d = datetime.datetime.now()
>>> d.strftime('X%d/X%m/%Y').replace('X0','X').replace('X','')
'5/5/2011'
윈도우즈의 경우 '%#m/%#d/%Y %#I:%M:%S %p'
참조: https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx
파티에 꽤 늦었지만%-d
내 목적을 위해 일한다.
datetime.now().strftime('%B %-d, %Y')
"2014년 11월 5일"과 같은 것을 생산한다.
건배 :)
나는 장고 템플릿 날짜 포맷 필터가 빠르고 쉽다고 생각한다.선행 0을 제거한다.장고 모듈을 가져오는 것을 꺼리지 않는다면, 그것을 확인해 보십시오.
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
from django.template.defaultfilters import date as django_date_filter
print django_date_filter(mydate, 'P, D M j, Y')
보다.-
벨로우:
>>> from datetime import datetime
>>> datetime.now().strftime('%d-%b-%Y')
>>> '08-Oct-2011'
>>> datetime.now().strftime('%-d-%b-%Y')
>>> '8-Oct-2011'
>>> today = datetime.date.today()
>>> today.strftime('%d-%b-%Y')
>>> print(today)
단순하게 사용하다replace
다음과 같은 경우:
(datetime.date.now()).strftime("%Y/%m/%d").replace("/0", "/")
출력:
'2017/7/21'
을 위해%d
다음을 사용하여 정수로 변환할 수 있다.int()
그러면 자동으로 선행 0이 제거되고 정수가 된다.그런 다음 다음을 사용하여 문자열로 다시 변환할 수 있음str()
.
예를 들어, "%-d"는 동일한 OS의 서로 다른 버전 사이에서도 휴대할 수 없다.더 나은 해결책은 날짜 구성요소를 개별적으로 추출하여 날짜별 포맷 연산자와 각 구성요소에 대한 날짜 속성 액세스 사이에서 선택하는 것이다.
e = datetime.date(2014, 1, 6)
"{date:%A} {date.day} {date:%B}{date.year}".format(date=e)
왜냐하면 Python은 정말로 C언어를 부르기 때문이다.strftime(3)
플랫폼에서 기능할 경우 선행 0을 제어하는 데 사용할 수 있는 형식 문자가 있을 수 있음; 시도해 보십시오.man strftime
그리고 한번 봐봐.그러나 물론 파이톤 매뉴얼이 상기시켜 주듯이 결과는 휴대할 수 없을 것이다. :-)
나는 새로운 스타일을 사용해 볼 것이다.datetime
대신 다음과 같은 속성을 가진 개체t.year
그리고t.month
그리고t.day
, 그리고 그것들은 일반적이고 고출력 포맷을 통해 넣는다.%
선행 0의 제어를 지원하는 연산자.자세한 내용은 http://docs.python.org/library/datetime.html을 참조하십시오.더 좋은 것은, 더 좋은 것을 사용하라."".format()
만약 당신의 파이썬이 그것을 가지고 있고 더 현대적이면 연산자; 그것은 숫자에 대한 많은 포맷 옵션도 가지고 있다.http://docs.python.org/library/string.html#string-formatting을 참조하십시오.
알렉스의 방법에 따라, 이는 스트링 시작 사례와 스페이스 후 사례 모두에 적용된다.
re.sub('^0|(?<= )0', '', "01 January 2000 08:00am")
.format 또는 %-d보다 이것을 더 좋아한다. 왜냐하면 이것은 크로스 플랫폼이고 스트립타임을 계속 사용할 수 있기 때문이다("11월"이나 "월"과 같은 것을 얻기 위해서).
오래된 질문이지만, %l (L 소문자 L)은 스트립타임에 나에게 효과가 있었다: 그러나, 내가 찾은 파이썬 문서에 나와 있지 않기 때문에, 이것은 모든 사람에게 효과가 없을 수도 있다.
import datetime
now = datetime.datetime.now()
print now.strftime("%b %_d")
만약 우리가 0을 리드하지 않고 오직 날짜만 가져오기를 원한다면 우리는 할 수 있다.
d = date.today()
day = int(d.strftime("%d"))
Python 3.6+:
from datetime import date
today = date.today()
text = "Today it is " + today.strftime(f"%A %B {today.day}, %Y")
늦었지만 간단한 목록만 잘라서 하면 일이 잘 될 거야.
today_date = date.today().strftime('%d %b %Y')
if today_date[0] == '0':
today_date = today_date[1:]
참조URL: https://stackoverflow.com/questions/904928/python-strftime-date-without-leading-0
'IT이야기' 카테고리의 다른 글
ngFor 비동기 파이프에 관측 가능이 아닌 관측 가능이 필요한 이유 (0) | 2022.03.25 |
---|---|
React Hooks useEffects의 기능이 호출되기 전에 렌더가 발생하는가? (0) | 2022.03.25 |
Vue Test Utils / Jest - 구성 요소 방법 내에서 클래스 방법이 호출되었는지 테스트하는 방법 (0) | 2022.03.25 |
VueJS 조건부로 요소의 속성 추가 (0) | 2022.03.25 |
각도 6 zip이 더 이상 사용되지 않음: resultSelector가 더 이상 지원되지 않음, 파이프에서 맵으로 (0) | 2022.03.24 |