According to Forbes, a bank is not obligated to pay a check that is more than six months old. After the initial period it is to the discretion of the bank whether to honor the check or not.
This six-month period is part of the Uniform Commercial Code in the United States. According to Wikipedia, this code was established in 1952 to harmonize all commercial sales and transactions. According to Cornell University Law School, only certified checks are not subject to this time period. In addition, a bank may charge a customer's account for a payment made thereafter in good faith.