2011-08-03 2 views
2

날짜가 시간만으로는 모두 가능합니까? 모든 설명서를 읽지는 못했지만 지금까지 항상 datetime을 사용하고 있습니다. Django에서도 - datetime 모델 필드는 항상 유용합니다 (적어도 나를 위해). 원하지 않는 시간을 사용할 필요는 없지만 할 일을 결정하면 시간을 사용할 수 있습니다.왜 파이썬에 날짜 클래스가 있습니까?

자바 스크립트는 단 하나의 날짜 클래스만으로도 잘 관리됩니다.

날자가 datetime보다 선호되는 예제를 줄 수 있습니까?

+1

날짜가 중요한 경우. – agf

+0

날짜가 datetime보다 약간 공간이 적습니다. 큰 시스템에서는 큰 차이가 있습니다. – nagisa

+0

날짜는 86400 또는 86401 초 기간의 날짜 시간 범위입니다. 시간은 매일 반복되는 날짜 시간의 클래스입니다. –

답변

4

날짜 구성 요소 만 필요하고 시간이 없으면 할 수 있습니다.

datetimedatetimedate가하는 일 모두 (그리고하지가 모든 것을 time가 수행) 수행, datetime 유형의 구성입니다, 그래서.

다른 하나 대신 하나를 선택하는 것은 매우 간단합니다. 날짜 만 기록하려면 date; 좀 더 구체적이고 특정 이벤트의 시간을 추적해야하는 경우 date time 개체를 사용하십시오. 이벤트가 주어진 시간에만 바인드되어야하고 날짜가 적절하지 않은 경우에도 마찬가지로 time 오브젝트에 적용됩니다.

+0

'time'은 UTC를 사용하는 것을 불가능하게하는데, 이것은 필자에게 필수적이라고 생각합니다. –

-1

datetimedatetime과 동일합니다. 더 좋은 점은 date보다 공간이 적다는 것입니다.

+0

의미 상으로 날짜는 datetime과 상당히 다릅니다. 때로는 필요한 것은 날짜뿐입니다. –

4

특정 개념은 datetimes보다는 date로 이해하기 쉽습니다. 예를 들어, 생일, paydays 및 만기일 모두 잠재적으로 datetimes 수 있지만 단순한 날짜로 훨씬 더 잘 표현 될 수 있습니다. 이것들을 datetimes로 표현하면 길을 혼란 스럽거나 모호하게 만들 수 있습니다.

우선, 향후 코드 관리자가 date을 이미 사용하고 있다고 생각할 수 있습니다. 그런 다음 비교 작업이 어떻게 작동하는지에 놀랄 수 있습니다. 분명히 동일한 두 개의 생일이 "평등"하지 않을 수 있습니다.

또한 생일이 datetime으로 표시 되더라도 시간이 얼마 남지는 것을 즉시 알 수는 없습니다. 시간이 항상 UTC의 출생의 정확한 시간이되는 것이 합리적 일 수 있습니다. 그러나 사용자로부터 얻은 데이터가 불완전하고 기본적으로 UTC 자정 시간이 될 때 고려해야 할 사항이 있습니다. 그런 다음 UTC 시간대가 자정 인 생일이 맞는지 또는 실제로 사용자가 제공 한 데이터인지 여부를 더 이상 알 수 없습니다.

그리고 각 자정의 UTC 시간을 각 datetime에 할당하면 모든 생일의 관련 시간 필드의 의미가 코드베이스를 처음 사용하는 사람에게 즉시 명확하지 않을 수 있습니다. 이 규칙을 인식하지 못하는 사람은 이들 중 하나의 시간 필드를 바꿀 수 있습니다. 그러면 그 기능이 매우 눈에 띄지 않게 깨질 수 있습니다. 방금 데이트했다면 그 문제는 피할 수 있었을 것입니다.

tl, dr : date이 있으므로 개발자가 "올바른 작업 도구"를 쉽게 사용할 수 있습니다.

+0

+1이 게시물은 별도의 Time 개체와 함께 별도의 Date 및 Datetime 개체가있는 이유를 요약합니다. Time 객체의 경우 매일 반복되는 작업을 고려하십시오. 그건 DateTime 객체가 아니에요, Time 객체입니다. 마찬가지로, 기념일이나 생일을 생각해보십시오. 그 모든 이벤트는 DateTime이 아닌 Date로 가장 잘 표현됩니다. 표현/표현하는 실제 객체에 코드를 가까이 배치 할 수 있습니다. 청소기가 더 명확하고 유지 보수가 쉽습니다. – Jonathanb

관련 문제