The "Year 2038 problem", a.k.a. Unix Millennium Bug, affects systems that use a signed 32-bit integer for the number of seconds since the "unix epoch" or 00:00:00 January 1, 1970. For such systems, the maximum date they are capable of expressing is 03:14:07 January 19, 2038.
Many "unix-like" systems express the current system time as the number of seconds since 00:00:00 January 1, 1970. For systems that use a signed 32-bit integer, which has a maximum possible value of 2,147,485,547, the maximum possible date is then 03:14:07 January 19, 2038, at which time adding one second will cause an integer overflow and result in a negative number, which will correspond to a time in the year 1901.
This Wikipedia article describes it in full.