Hadfield attended White Oaks Secondary School in Oakville, Ontario until his senior year and then graduated as an Ontario Scholar from Milton District High School in 1977.
In the late 1980s, Hadfield attended the US Air Force Test Pilot School at Edwards Air Force Base and served as an exchange officer with the US Navy at Strike Test Directorate at the Patuxent River Naval Air Station.