You... kinda don't have to?
ntp uses settimeofday()/adjtime()
date uses gettimeofday()
As long as you do things in order (i.e., ntpdate -> date +%s -> setdate: ntp sets, date gets, setdate sets to what date returned), everything will be coherent.
If it isn't, your NTP setup is borked (and/or you have extra TZ/DST shenanigans to take care of first).
----
Or, just try @knc1's
extension, which goes with ntpdate -> hwclock -w