2038년1월18일(월요일) 22시14분07초

rgbi3307의 이미지

1970년1월1일 00시00분00초 (신시대,epoch)
에서
2038년1월18일(월요일) 22시14분07초
사이의 시간을 초로 환산하면,
2,147,483,647 (21억4천7백48만3천6백47초)가 되는가요?
(정확히 계산 않해 봤음. 혹시 확인하신 분 있으신가요?)
암튼,
위의 숫자는 32비트 아키텍쳐에서
C언어의 typedef long time_t 데이터 타입으로 표현할 수 있는 최대 크기라고 하는군요.
그럼,
2038년1월18일(월요일) 22시14분07초 이후에는
컴퓨터 시스템이 64비트 아키텍쳐가 되어야 하고,
소프트웨어도 여기에 맞추어야 한답니다.
리눅스 커널 2.6 이상부터는 64비트 아키텍쳐를 지원한다고는 하는데, 문제가 없을까요?
저도 확실히 검증(실습)을 않해봐서,
어떤 것들을 확인해 봐야 할지, 서로 고민해 봤으면 합니다.

송효진의 이미지

64bit 에서 unix timestamp 값이 잘 나오면 되는거죠?

$ php -r 'echo strtotime("2038-1-18 22:14:07");'
2147433247
$ php -r 'echo strtotime("2038-1-19 22:14:07");'
2147519647
$ php -r 'echo strtotime("2040-1-19 22:14:07");'
2210591647
 
$ php -r 'echo date("Y-m-d H:i:s", 2210591647);'
2040-01-19 22:14:07
 
$php -r 'echo date("Y-m-d H:i:s", 922337203030);'
31197-09-14 11:37:10

요건 32bit

$ php -r 'echo date("Y-m-d H:i:s", 2147483647);'
2038-01-19 12:14:07
$ php -r 'echo date("Y-m-d H:i:s", 2147483648);'
1901-12-14 05:15:52

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/

select99의 이미지

문제가 생길수있죠..

사실 과거 2000년도될때 밀레니엄버그어쩌고 큰일이날것처럼 떠들었지만..

그때가 문제가아니라 정작 2038년이 문제입니다..
종종 time_t 값을 int로 한것들을 제법 봤거든요..^^;

더구나 구시스템은 재컴파일부터 안하면 다문제되죠..
물론 지금부터 시스템이 28년은 더버텨줄만한 시스템이 있나하는게 문제겠지만..

aero의 이미지

y2038
Saving The Future From The Past! A 2038 clean time.h for 32 bit time_t machines.

http://code.google.com/p/y2038/

Daiquiri의 이미지

2038년이 되기 전에 다 64bit로 바꾸면 됩니다.

geoplab의 이미지

아들이나 손자를 시키면 되지않나요?

그냥 지나가는 농담이었습니다... ^.^

현재의 일도 벅차서 먼 미래의 일은 쫌...
물론 미래에 발생할 문제를 미리 파악해서 고민하고 대비하는 것도 매우 중요하지요...

groge의 이미지

왜 세팅이 안되는지 한참을 찾았습니다.
이런 문제가 있군요.
mysql 64bit로 설치했는데도 timestamp 값이 '2038-01-19 12:14:07' 요 날짜 이후로 세팅이 안되네요.

익명 사용자의 이미지

http://en.wikipedia.org/wiki/Year_2038_problem#Solutions

Quote:
Most operating systems for 64-bit architectures already use 64-bit integers in their time_t,
익명 사용자의 이미지

OpenGroup (X/Open)에는 time_t 가 다음과 같이 정의되어 있습니다.
time_t ... shall be integer or real-floating types.

지리즈의 이미지

There is no spoon. Neo from the Matrix 1999.

익명 사용자의 이미지

32비트 컴퓨터 멸종 시간으로 봐도 되겠군요. ㅋㅋㅋ

사랑천사의 이미지

long long(혹은 LONGLONG)나 int64로 timestamp를 쓰지 않는 이상에야.. 흠흠...
애초에 int나 long으로 timestamp를 쓰지 않고 time_t로 쓰고 시스템만 64bit으로 잘 쓴다면야 문제가 없었겠지만, 코드에서 부터 time_t가 아니라 int나 long으로 쓴 프로그램들이 다수 있고 이런 것들 가운데는 바이너리만 있는 것도 꾀나 되기 때문에 당할 수 있겠조. 그 때 까지 아무런 조치도 취하지 않는다면.

사람천사

madman93의 이미지

그 때까지 살아만 있으면 좋겠습니다.
32bit 64bit 그런건 상관없습니다

---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------