I did some research and spray paint does expire. Best that I can tell Krylon has 5 years and there is a date code under the cans, though they don't make it so easy to read. Luckily someone asked years ago on the Krylon side and a staff member decoded stamped number on the bottom.
"To determine how old a particular can is, the batch number should be stamped on the bottom of our aerosol cans/containers. It will start with 1 or 2 letters, followed by 4 numbers. There are additional letters and numbers, but they have no bearing on the shelf-life. In fact, specifically, only the 4 digits matter; in terms of how old our product is.
Example:
EM2352
We manufacture by the Julian calendar.
The letters at the beginning of our code are the plant code and have no bearing on the manufacture date.
The 4 digits is all that is relevant to determine how old that particular can and contents are.
The first 3 digits are the day of the year our can was manufactured on.
The 4th number is the year of manufacture (always a 1 digit number).
So for this particular can, the batch date is the 235th day of 2012, or August 22nd, 2012."
- The can I pulled from my garage trash can has a code of: "HL2249CB" = 229 day of 2019 or August 17th of 2019. At least a year left before "official" expiration date.
- The can that is discolored and not curing right: "HL0764EP" = 229 day of 2014 or March 17th of 2014. Over 4 years past its "official" expiration date.
That is way more than I really wanted to know about the weird stampings on the bottom of a spray can. I hope I can get a can or two that is under 5 years old! Ugh!