People ask me when is the best time to stretch? I usually answer this question with another question: what is your goal?
The usual answer is, people want to prevent injury or increase Mobility; I would agree with both of these answers. However, to prevent injury the best thing to do is warm up the muscles. That said, increasing blood flow increases elasticity and mobility. You can make it complicated, but the bottom line is to simply get your body moving.
With regards to stretching, I recommend you do it after you get done with your training. Muscles have done what they're supposed to do and you can now focus on the recovery. Find the body parts that you want to stretch, holding these positions in a comfortable stretch for 20 to 30 seconds, 2 to 3 times is sufficient. After a good weight training session of using proper form and full range of motion, you shouldn't have to spend more than 5 minutes of stretching.
Some people are naturally flexible, others (like myself) are absolutely not. For the latter, it would be a wise investment of time to spend on this aspect.