날짜 (1970 년 1 월 1 일)를 시간 조작의 기본 표준으로 사용하는 이유가 있습니까? 저는이 표준을 파이썬뿐만 아니라 자바에서도 보았습니다. 내가 알고있는이 두 언어. 동일한 표준을 따르는 다른 인기있는 언어가 있습니까?
설명해주세요.
날짜 (1970 년 1 월 1 일)를 시간 조작의 기본 표준으로 사용하는 이유가 있습니까? 저는이 표준을 파이썬뿐만 아니라 자바에서도 보았습니다. 내가 알고있는이 두 언어. 동일한 표준을 따르는 다른 인기있는 언어가 있습니까?
설명해주세요.
답변:
날짜 (1970 년 1 월 1 일)를 기본 표준으로 사용
질문은 두 가지 잘못된 가정을합니다.
계산 시간 이 1970 UTC 초부터 항상 추적되는 것은 아닙니다 . 이 epoch 참조 가 인기가 있지만 수십 년 동안 다양한 컴퓨팅 환경에서 거의 24 epoch를 사용했습니다 . 일부는 다른 세기에서 왔습니다. 0 년부터 2001 년까지의 범위입니다.
다음은 몇 가지입니다.
기원전 1 년 1 월 0 일
AD 1 년 1 월 1 일
1582 년 10 월 15 일
1601 년 1 월 1 일
1840 년 12 월 31 일
1858 년 11 월 17 일
1899 년 12 월 30 일
1899 년 12 월 31 일
1900 년 1 월 1 일
1904 년 1 월 1 일
1967 년 12 월 31 일
1980 년 1 월 1 일
1980 년 1 월 6 일
2000 년 1 월 1 일
2001 년 1 월 1 일
1970 년 초는 유닉스에서 사용 되었기 때문에 인기가 있습니다. 그러나 결코 그렇게 우세한 것은 아닙니다. 예를 들면 :
January 0, 1900
(1899 년 12 월 31 일).1 January 2001, GMT
.January 6, 1980
유럽의 대안 동안 갈릴레오 사용 22 August 1999
.count-since-epoch가 Unix epoch를 사용한다고 가정하면 버그에 대한 큰 취약성이 열립니다. 이러한 카운트는 사람이 즉시 해독 할 수 없으므로 디버깅 및 로깅시 오류 또는 문제가 쉽게 표시되지 않습니다. 또 다른 문제는 아래에 설명 된 세분성의 모호성입니다.
명확한으로 난 강력하게 대신 직렬화 날짜 - 시간 값을 제안 ISO 8601 : 데이터 문자열이 정수 카운트 이후-시대보다는 교환 YYYY-MM-DDTHH:MM:SS.SSSZ
등 2014-10-14T16:32:41.018Z
.
에포크 이후 카운트 시간 추적의 또 다른 문제는 일반적으로 사용되는 최소 4 단계의 해상도를 사용하는 시간 단위입니다.
왜 항상 1st jan 1970입니까? 왜냐하면- '1st January 1970'는 일반적으로 "epoch date"라고 부르는 날짜는 Unix 컴퓨터에서 시간이 시작된 날짜이고 해당 타임 스탬프는 '0'으로 표시됩니다. 해당 날짜 이후의 시간은 경과 된 시간 (초)을 기준으로 계산됩니다. 간단히 말해서 ... 모든 날짜의 타임 스탬프는 해당 날짜와 '1970 년 1 월 1 일'사이의 초 단위 차이입니다. 타임 스탬프는 '1970 년 1 월 1 일 자정'의 숫자 '0'에서 시작하여 계속 증가하는 정수입니다. 1 초마다 '1'씩 UNIX 타임 스탬프를 읽을 수있는 날짜로 변환하기 위해 PHP 및 기타 오픈 소스 언어는 내장 함수를 제공합니다.
시간 조작의 기준으로 날짜 (1970 년 1 월 1 일)를 사용한 이유가 있나요?
중요한 이유가 없습니다.
Python의 time
모듈 은 C 라이브러리입니다. Ken Thompson에게 왜 획기적인 데이트를 위해 그 날짜를 선택했는지 물어보세요. 누군가의 생일이었을 수도 있습니다.
Excel은 두 가지 시대를 사용합니다. Excel의 다른 버전이 다른 날짜를 사용하는 이유는 무엇입니까?
실제 프로그래머를 제외하고는 아무도 그런 결정이 내려진 이유를 알 수 없습니다 .
과...
날짜가 선택된 이유 는 중요하지 않습니다 . 그냥 그랬어요.
천문학 자들은 자신의 획기적인 날짜를 사용합니다 : http://en.wikipedia.org/wiki/Epoch_(astronomy)
왜? 수학이 잘되게하려면 날짜를 선택해야합니다. 임의의 날짜가 작동합니다.
과거의 날짜는 일반적인 경우 음수를 피합니다.
더 똑똑한 패키지 중 일부는 그레고리력 1 년차를 사용합니다. 왜 1 년차를 사용합니까?
Calendrical Calculations와 같은 책에는 이유가 있습니다. 수학적으로 약간 더 간단합니다.
하지만 생각해 보면 1970 년 1 월 1 일과 1 월 1 일의 차이는 사소한 수학적 오프셋 인 1969에 불과합니다.
Q) "왜 날짜는 1970 년 1 월 1 일부터 계산됩니까?"
A) 가능한 한 최신이어야하지만 과거를 포함해야 합니다 . 많은 사람들이 같은 식으로 느끼기 때문에 다른 중요한 이유가 없었을 가능성이 큽니다.
그들은 과거에 너무 멀리 배치하면 문제가된다는 것을 알았고 미래에 있다면 부정적인 결과를 낳는다는 것을 알고있었습니다. 사건이 미래에 일어날 가능성이 가장 높기 때문에 과거를 더 깊이 살펴볼 필요가 없었습니다.
주석 : 반면에 마야인들은 과거에 대한 많은 지식을 가지고 있었기 때문에 사건을 과거에 배치 할 필요가있었습니다. 캘린더에 모든 일상적인 현상을 배치하기 위해.
타임 스탬프는 캘린더가 아니라 Epoch입니다. 그리고 나는 마야인들이 같은 관점을 사용하여 장기적인 달력을 만들었다 고 믿습니다. (그들은 과거와 아무런 관계가 없다는 것을 잘 알고 있었으며 더 큰 규모로 볼 필요가 있었다는 것을 의미합니다)
예, C (및 그 가족). 이것이 자바가 가져간 곳이기도하다.