Строго говоря, если исходить из определения белых ночей и гражданских сумерек, то белых ночей в Санкт-Петербурге вообще не бывает, поскольку город расположен немного южнее самой южной параллели, где солнце 22 июня за ночь опускается не ниже шести градусов под горизонт. Но поскольку значение этого города велико, ему сделали "поблажку" и всё-таки называют это явление белыми ночами.
Исходя из этого, стоит полуночному солнцу опуститься ещё чуть ниже, как даже эта поблажка действовать перестаёт. Соответственно период "условных" белых ночей в Питере - это 22 июня плюс-минус 10 дней, то есть скажем от 10 июня до первых чисел июля.
Подробнее про ход солнца смотрите получасовой видеоматериал
https://www.youtube.com/watch?v=dMoLUIpsE7s