How in advance should I book a hotel?

The best time to book a hotel is one or two months in advance.

Book too early is not necessary, some hotels only publish their room prices for the next one or two months, also the promotion prices published in these period of time.