To me, "nice" means "agreable to the person who's talking" So, the dinner was nice = I enjoyed the meal and the mood, the people at my table etc... the dinner was good = the food was good; no other comment. Good is also the conrary of "bad" (a good child behaves well, a "bad" child doesn't) The weather is good: it's sunny (or it doesn't rain, according to the place/country) The weather is nice: I enjoyed the weather, no rain, mild temp, maybe sunny; here I find it's more related to your own opinion.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.