How long should I hold a stretch?

This seems like a simple enough question right?  

Yes and no.  As a general rule you should hold a stretch for as long as the muscle takes to react to the stretch.  This can vary based on how often you stretch and what your goal is when stretching.  

There are a lot of stretching techniques out there : Plyometric stretches, Dynamic Stretches, Ballistic stretches, PNF stretching, Static stretching, etc.  

What we are discussing here is the classic static stretch, where a position is held putting a muscle on tension to the point of a stretching sensation.     

Go into the golgi tendon, muscle spindle, stretch reflex

Before participating in a sport you should hold a stretch less than 15 sec, so dynamic stretches are best.  If you hold the muscle for a long stretch this causes the muscle to relax, which is good for improved flexibility, but you also cause the muscle to be less reactive for sports and sports performance can be affected by this relaxation of the muscle

To simplify all this information:  

If you are warming up for an athletic event you should keep your stretching under 15 seconds. 

As a general rule when stretching try to hold the stretch between 15- 30 sec for 2-4 repetitions.  

There is benefit to be had from stretching for 1-2 minutes especially after the age of 60 but if you are stretching more often you will not need to hold the stretch as long to get the muscle to react.