
Michele M. answered 06/25/25
Italian tutor born and raised in Italy
In general, the word "buongiorno" (good morning) should be used from 6am to 12pm. After that, it is common to say "buon pomeriggio" (good afternoon) until 6pm, when the greeting switches to "buonasera" (good evening) until 12am.
"Buonanotte" (good night) is typically used from 12am to 6am to wish someone a good night (yes, it can be used earlier - for example if someone is going to sleep at 9pm - but it is still related to the night, I.e. from 12am and on). At the same time, if you are up in the middle of the night and, for example, you call a live radio show, you will be greeted with a "Buonanotte".
Another way to tell, is by looking at a clock: it runs from 0 to 12, and a full day goes around that cycle twice. The day is supposed to be divided in 4 periods of 6 hours each, and each period has a name. First 12 hour period: Notte 12am-6am and Mattina 6am-12pm. Second 12 hour period: Pomeriggio 12pm-6pm and Sera 6pm-12am.
This is the correct rule, then, as with everything, people in Italy do whatever they want.