It seems all cruises spend two days at St Petersburg. I have heard that the Russian government requires they stay overnight, but in any event you can easily spend two days there. We treated ourselves, and booked a private two day tour with Alla tours. It was well worth the money. We had a guide and driver for the two of us. We were able to avoid the crowds, stop for a break whenever we need it, and got to chat about ordinary life as well as the history etc. Our guide was very knowledgeable, not just about the history, but also the art in the Hermitage. Our driver was more of a chauffeur - he always seemed to have the car just where we needed it. I would recommend Alla Tours to anyone visiting St. Petersburg.