2016-12-07 1 views
0

나는 날짜를 가지고 작업 해 왔습니다. datetimes를 ordinal로 변환하려고하지만 스크립트가 실패합니다.python에서 datetime을 ordinal으로 변환하지 못했습니다.

from datetime import datetime 

date = "2016/12/07 17:45" 
date_strip = datetime.strptime(date, '%Y/%m/%d %H:%M').date() 
ordinal = date_strip.toordinal() 
# ordinal = 736305 
normal_date = datetime.fromordinal(ordinal) 
# normal_date = 2016-12-07 00:00:00 not 2016-12-07 17:45:00 

뭐가 잘못 됐나요? 내가 도와 줘?

+0

... 문제가 무엇인가요? 어쩌면 나는 밀도가 있지만 여기서 문제가 보이지 않을 것입니다 ... – mgilson

+0

원본 = 2016/12/07 17:45 서수를 변환 한 후 서수에서 변환 : 2016-12-07 00:00:00 –

+0

Uriel can 제발 제발 설명해 주실 래요? –

답변

0

ordinal은 날짜 만 저장하기 때문에.

년 1 월 1 일이 어떤 날짜 개체 D 1. 서수, date.fromordinal (d.toordinal을())이 날짜의 예 기적 그레고리 순서 == D : 서수는 시간을 포함 할 수 없습니다 .

서수 대신 시간 소인으로 변환하려면이 so answer을 사용해보십시오.

+0

고마워요. , 솔루션 타임 스탬프로 변환됩니다 –

0

datetime.date() 반환 date 같은 해, 월, 일을 가진 객체가 아니라 시간, 분, 초, 즉 하루 해상도. 아래에서 쉽게 볼 수 있습니다. datetime.toordinalself.date().toordinal()과 동일 함을

>>> from datetime import datetime 
>>> s = "2016/12/07 17:45" 
>>> d = datetime.strptime(s, '%Y/%m/%d %H:%M').date() 
>>> type(d) 
<type 'datetime.date'> 

알 수 있습니다.

>>> from datetime import datetime 
>>> dt = datetime.strptime('2016/12/07 17:45', '%Y/%m/%d %H:%M') 
>>> dt.toordinal() == dt.date().toordinal() 
True 
+0

덕분에 최선의 방법은 타임 스탬프 타임 스탬프를 변환하는 것 같아요 –

관련 문제