Working in food processing I learned a few things concerning dates on foods...
1. No food is labeled with a hard and fast expiration date. This is for two reasons. First, they can't guarantee that the food will last to that date as storage temperature and handling will have a big impact on a foods shelf life.
Second, food doesn't go bad overnight. Food is not good today and bad tomorrow. Spoilage takes time, therefore, a single date isn't feasible.
2. Working at a creamery, the date stamped on milk was not a "Best by" date, or even an expiration date. It was referred to as a production code. We would often run 3 different production codes on the same day from the same tank of milk into the same containers, with the only change being the date that was printed on the container.
However, if your milk goes bad BEFORE the date on the container, and you haven't let it get warm, buy your milk from somewhere else. That store is not handling their dairy products correctly and it probably means they aren't handling other products correctly either.
Finally, if you have a canned good that is swelling, THROW IT OUT!!!! You have a very good chance of a nasty strain of botulism in that can that you do not want to eat. However, if you have an old can that looks fine, and isn't swelling, open it and smell it. If it smells fine and looks fine you are good to go.