By default, in an AD-based network, the domain controller gets its time from the BIOS clock and all computers in the domain including servers synchronize their time with the domain controller. The BIOS clock can be wrong for many reasons so it's a good idea to set up the domain controller, primary one specifically, to synchronize with the external time server. To do so,
First, pick up one or two rock solid SNTP time server. Here is a list that you can look at.
Second, log in to the primary domain controller and synchronize the time server for the domain controller with an external source. In short,
w32time /monitor - to check what has been set up?
w32time /config /manualpeerlist: /syncfromflags:MANUAL - to configure.
w32time /update - to update the time services on the server.
w32time /resync - to re-synchronize with the external time server that was set up earlier.
All other computers in the domain then will get their time synchronized in a timely manner or after the reboot. Or, you can also set up the group policy in AD to force all computers to do so.