Here's my own solution (different people have different ways of working it out, explaining and phrasing, but the final correct answer is the same, and there is only 1 correct valid answer).
Based on Albert's 1st statement :
If Cheryl told Albert her birthday was either in May or June, then it might be possible that Bernard was told by Cheryl that her birthday was on a 19th or 18th, then Bernard would have known for sure. Since Albert is sure Bernard doesn't know, hence Cheryl could not have told Albert her birthday month was either in May or June.
Based on Bernard's 1st statement :
Note that it is crucial for Albert and Bernard to hear each other out, to come to a definitive conclusion on Cheryl's birthday.
Since Bernard (upon hearing Albert's statement and correctly deducing that Cheryl's birthday must either be in July or August), says he now knows Cheryl's birthday, hence Cheryl's birthday must be on a day that is not repeated (ie. 14th of July or August), and therefore we conclude Cheryl's birthday must be either on July 16, August 15 or August 17. But we still can't be sure exactly which of these 3 dates is Cheryl's birthday yet (since we still do not know the month).
Based on Albert's 2nd statement :
Now that Albert has heard Bernard (who had earlier heard Albert), the only way Albert can confidently and correctly state that he now knows Cheryl's birthday, must therefore mean that Cheryl told him her birthday was in July (because if Cheryl told Albert her birthday was in August, then there's no way Albert could rule out either 15th or 17th of August).
In conclusion, Cheryl's birthday must be on July 16. Also, we can conclude Cheryl's a bitch playing hard-to-get, so both Albert and Bernard really need to get themselves a new girlfriend.