2013-01-02 2 views
0

datetime 모듈을 사용하려고합니다. 나는 그 달이 앞에 ZERO가있는 INT로 되돌아 올 필요가있다. JAN 01과 같은 형태, 등 등 FEB 02에서 I는 1을 사용하여 얻을 수파이썬 INT/날짜 형식화

today = date.today() 
m = today.month 

I는 INT로이 방법을 올바른 형식을 얻을 수는 없지만.

today.strftime("%m") 

내가 원하는 형식을 얻는 간단한 방법이 있습니다. 나는 참고 문헌을보고 나는 그것을 놓치고 있다고 확신하지만 누군가가 도울 수있다.

+1

나를 위해 작동합니다 :'>>> import datetime; >>> a = datetime.datetime.now(); >>> print a.strftime ('% m'); 01' –

+4

질문이 없습니다. 이 달을 INT로 지정하면 '1,2,3 ... 12'가 될 수 있습니다. 그러나 당신은 문자열 인 '01, 02,03, ..., 12'의 형태로 그것을 요구합니다. 어느 쪽을 원해? – Cynical

답변

5
'{:%m}'.format(datetime.datetime.now()) 

'{:02d}'.format(datetime.datetime.now().month) 

을 또는 당신은 오래된 스타일의 문자열 보간을 사용할 수 있습니다 : 물론

, 당신은 덜 직접적인 접근을 할 수

'%02d' % (datetime.datetime.now().month) 

하지만 난 그게 멋진 생각하기 때문에 나는 첫 번째를 좋아한다. ..


마지막으로, 나는 무엇이 잘못되었는지 보지 않는다. .strftime ... 심지어 t 당신이 찾고있는 것 같다 무엇

datetime.datetime.now().strftime('%m') 

그것을 인쇄 할 때 자신을 "표현"하는 방법을 알고 int의 특별한 서브 클래스 : 무릎 당신은 나를 위해 잘 작동, 당신은 그것을 시도했다 :

class MyInt(int): 
    def __str__(self): 
     return '%02d' % self 

a = MyInt(3) 
print (a) 

그러나, 나는 확실히 당신이 문자열로 정수를 표현해야 할 때 대신 내가 정수 객체에 이상했던 것처럼 문자열 형식 또는 문자열 보간을 사용하는 것이 좋습니다 것입니다,이 방법을 사용하는 것이 좋습니다 않을 것입니다.

+0

+1. ** ** 멋지다. – eumiro

+0

@eumiro - 오 마술의'__format__' : – mgilson

+0

@mgilson 매우 잘 혼합하고 일치하기 때문에 - 기본 속성에 접근 할 수도 있습니다 :''{.month} '. format (now)' "01"대신 "1"을 되 돌리십시오 (이 경우에는 필요하지 않지만 때로는 유용합니다) –