Private beta lasts at least 21 days.
So far Monero has been in private beta for 20 days as can be seen here
Public beta could start anytime as soon as tomorrow. My answer is somewhat vague because the decision is made on a case by case basis.
All we can do is remain active and make sure our private beta content is of high quality. To that end I recommend reading thisthis.