I think your conclusion is correct (if I remember correctly from my college Italian course), but your reasoning (it's that way in English, so it's probably that way in Italian) is not (else Buenas noches in Spanish would never be used as a greeting). To add to the discussion a little bit, "buona sera" is generally a good greeting instead. It's pretty equivalent to "good evening." I'm not sure if you'd say it at, say, 2:00 am though.
Hm, I thought that was peculiar to the English language, where we think anything "am" is morning and anything "pm" is not. I didn't think that was true in other languages; I was under the impression that 2:00 am is not considered morning in Italian. I could be wrong though.
Well, Italy is actually on a 24 hour day, but "buona notte" is considered a farewell. Someone is probably going to bed. You could say "Buon giorno" for "Hello" at "due ora di mattina", but perhaps "Ciao" or "Salve" might be more useful then, unless the situation is actually not informal? http://www.wikihow.com/Say-Hello-in-Italian http://italian.about.com/cs/travel/ht/telltimeitalian.htm http://italian.about.com/library/survival/blsurvival004.htm http://italian.about.com/library/survival/blsurvival002.htm
@allintolearning I'm not disputing that buon giorno is used for good morning, but the thing is, I don't think "due" (on a 24-hour clock) is considered mattina--I think it's considered notte. I read the links, and the first one said on the one hand that buon giorno is for AM, but then said that notte is midnight to early morning, which is also AM. It's not clear. But I think that when we're not speaking English anymore, we have to break out of our paradigm that the entire period from midnight until noon is "morning."