iOS NSDateFormatter Provides Incorrect Dates for 12-Hour Time

When iOS devices are set to 12-hour time, the NSDateFormatter behaves unexpectedly even when you give it a date format. Turns out the secret is to give it the locale too, so that you have complete control of the format it uses.