2017-11-22 1 views

답변

3

KDB +는 다른 표준을 따르기 때문에 다른시기를 사용합니다. KDB +는 율리안 연도를 기반으로하는 J2000 국제 표준을 따릅니다.

UNIX는 처음에는 32 비트 부호없는 정수인 POSIX 시간을 사용합니다. 시간은 60 분의 1 초로 계산되었으므로 32 비트 정수는 약 829 일 동안 만 작동하므로 최근 날짜를 선택해야했습니다.

유닉스 프로그래머 매뉴얼 11 월 3 1971 년 일자 초판

이 차이 할 수있는 "초 sixtieths 측정 일 00 : 00 : 00 시간 이후의 시간 월 (1), 1971"로 유닉스 시간을 정의 선택한 에포크 시간을 응용 프로그램에 파이핑하기 전에 하나의 표준으로 변환하지 않을 경우 문제가 발생합니다. 시스템/다른 언어와의 상호 작용에 관한

+0

틀린 년 ... 1970 not 1971 –

+1

Jacob, 그것은 ** 나중에 수정되었다 **. 처음에는 1971을 말했습니다. [StackOverflow answer] (https://stackoverflow.com/questions/11573024/when-was-unix-epoch-time-revised-from-1971-to-current-1970-value#11597932) – DeathCamel57

0

문제 KDB는 UNIX의 시대가 http://code.kx.com/q/ref/casting/#tok에서

타임 스탬프 구문 분석 할 수있는 사실에 의해 처리 될 수 있어야한다

(유닉스 시대 이후 초)

구문 분석 유닉스 타임 스탬프 9, 문자열 ... 11 자리 :

q)"P"$"10129708800" 
2290.12.31D00:00:00.000000000 
q)"P"$"00000000000" 
1970.01.01D00:00:00.000000000 
0

KDB +는 availabl이다 많은 다른 운영 체제, 현재 Windows, Linux-x86, Linux-ARM 및 OSX는 kx에서 다운로드 할 수 있으며 이전에 solaris를 사용할 수있었습니다.

위키 백과에 대한 system time 페이지에서 다양한 운영 체제가 서로 다른 신기원을 사용한다는 것을 알 수 있습니다. 이 산업 은행 + 우리는 그들이 시대를 달리 한 것은 범위 것을 볼 수 있습니다 지원 OS 고려 : 리눅스 또는 윈도우 시대를 사용하여

OS    Epoch or range 
------------------------------------------------- 
Unix/Posix  1 January 1970 to 19 January 2038 
Windows   1 January 1601 to AD 30,828 

하면 다른 어쨌든 일치하지 않았다는 것을 의미한다. 이 페이지에서 더 읽는 것은 또한 많은 다른 언어들이 그들 고유 한 신기원의 날짜와 범위를 사용함을 보여줍니다.

즉, 언어가 실행되는 OS의 기원 시간을 사용해야하는 이유가 없습니다.

관련 문제