Nope, exact halving date can't be known in advance, the best we can to is estimate it and all the websites with halving counters do exactly that. All that we know is that the next halving will happen at the block 840,000 but problem is that we can't be 100% sure when that will happen because blocks are not mined at the exactly 10 minutes interval and instead that's just an approximate average.
Even two or three blocks before the next halving block #840,000, we still can not know exact time when the halving block will be mined on the network. Three blocks can be mined in a little more than 10 minutes if there are two blocks occur in a few seconds and a third block occur after about 10 minutes (an average block time). Three blocks can be mined in more than 30 minutes if all those three blocks are mined around average block time.
We can not know it exactly.