I think I might have gotten the answer...
Albert: I don't know when Cheryl's birthday is [...]
Now we know that Albert only knows the month of Cheryl's birthday. If we look at all the different options, each month has more than one option. May has 3 options (May 15, May 16, May 19), June has 2 options (June 17, June 18) and so on. This is why Albert does not know. No matter what month he got, he doesn't have a definite answer because there are more than one choices.
Albert: [...] but I know that Bernard does not know."
We know that Bernard only has the date. So here are the possible dates he got, and the months which they belong to:
14 (Jul, Aug)
15 (May, Aug)
16 May, Jul)
17 (Jun, Aug)
18 (Jun)
19 (May)
Both 18 and 19 have only one possible option. Meaning if he got 18 or 19, he would get his answer.
But Albert knows that Bernard doesn't know. Meaning he knows that Bernard's date isn't 18 or 19. The only way Albert can be sure of this is if the month he got isn't May or June. That means Cheryl's birthday is either in July, or August.
Bernard: At first I don't know when Cheryl's birthday is, but I know now.
Bernard follows Albert's thought process and knows that Cheryl's birthday is either in July or August. That means the dates which Bernard are one of the following:
14 (Jul, Aug)
15 (Aug)
16 (Jul)
17 (Aug)
We know that Bernard got his answer. Since he only has the date, not the month, his date can't be 14. Because the month could be July or August. That means that Bernard's date is 15, 16, or 17.
Albert: Then I also know when Cheryl's birthday is.
Albert follows Bernard's thought process and comes to an answer. His month either is July or August. And since we ruled out 14 from above, here are the options:
July (16)
August (15, 17)
Since Albert has come to a conclusion, we know that the month he got must be July as it only has one option.
Therefore, Cheryl's birthday is July 16.
Wow, that was a waste of half an hour :3