특정 개념은 datetimes보다는 date로 이해하기 쉽습니다. 예를 들어, 생일, paydays 및 만기일 모두 잠재적으로 datetimes 수 있지만 단순한 날짜로 훨씬 더 잘 표현 될 수 있습니다. 이것들을 datetimes로 표현하면 길을 혼란 스럽거나 모호하게 만들 수 있습니다.
우선, 향후 코드 관리자가 date
을 이미 사용하고 있다고 생각할 수 있습니다. 그런 다음 비교 작업이 어떻게 작동하는지에 놀랄 수 있습니다. 분명히 동일한 두 개의 생일이 "평등"하지 않을 수 있습니다.
또한 생일이 datetime
으로 표시 되더라도 시간이 얼마 남지는 것을 즉시 알 수는 없습니다. 시간이 항상 UTC의 출생의 정확한 시간이되는 것이 합리적 일 수 있습니다. 그러나 사용자로부터 얻은 데이터가 불완전하고 기본적으로 UTC 자정 시간이 될 때 고려해야 할 사항이 있습니다. 그런 다음 UTC 시간대가 자정 인 생일이 맞는지 또는 실제로 사용자가 제공 한 데이터인지 여부를 더 이상 알 수 없습니다.
그리고 각 자정의 UTC 시간을 각 datetime
에 할당하면 모든 생일의 관련 시간 필드의 의미가 코드베이스를 처음 사용하는 사람에게 즉시 명확하지 않을 수 있습니다. 이 규칙을 인식하지 못하는 사람은 이들 중 하나의 시간 필드를 바꿀 수 있습니다. 그러면 그 기능이 매우 눈에 띄지 않게 깨질 수 있습니다. 방금 데이트했다면 그 문제는 피할 수 있었을 것입니다.
tl, dr : date
이 있으므로 개발자가 "올바른 작업 도구"를 쉽게 사용할 수 있습니다.
날짜가 중요한 경우. – agf
날짜가 datetime보다 약간 공간이 적습니다. 큰 시스템에서는 큰 차이가 있습니다. – nagisa
날짜는 86400 또는 86401 초 기간의 날짜 시간 범위입니다. 시간은 매일 반복되는 날짜 시간의 클래스입니다. –