Because snow can fall as late as May, the best time to visit St. Petersburg is June-August. Temperatures during these months get up around 68 F/20 C to 77 F/25 C. By far, the most tourists arrive in June for the celebrated White Nights period, when it doesn't become dark until 2 am—and then only slightly. Fall and its cooler temperatures arrive in mid-September, and by October, temperatures drop substantially to around 48 F/10 C. Snow doesn't usually begin falling until November but can come as early as October.
By January, temperatures can get as low as -7 F/-25 C, but generally range 32 F/0 C to 14 F/-10 C, and the chilly wind from the Gulf of Finland can make it seem a lot colder. Note that temperatures may vary wildly in winter, and rainfall may turn the frozen streets into a skating rink. February is often a good month for photography, though. When the winter sun makes an appearance, it will clad the historic monuments in golden and orange hues.