logrotate does not rotate at the time specified in crontab

logrotate is controlled by anacron.

Check the configuration of this service in the file etc\anacrontab. For example it can be:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=10
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-4

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

The line START_HOURS_RANGE=3-4 indicates that anacron will run any time between 3 A.M and 4 A.M. and the line RANDOM_DELAY=10 means that it will add a random time of maximum 10 minutes to the starting time.

You'll need to modify this to make it work at the time that you want.