On devices with sensor history, and specifically getTemperatureHistory, you get an iterator, and then look at the newest sample. It's just a couple minutes old, but is from the internal sensor, which can be impacted by your body temperature. See the SensorHistory sample in SDK.
As of CIQ.2.3.0, you can also use a background process on CIQ 2.x devices and get the weather off the internet and display that in a watchface.
A background temporal event can run at most every 5 minutes, but for weather data, I use 15 minutes as the default
I have a developer blog post about backgrounding that points to a thread here in the forums with a simple same of how to set up backgrounding. The blog post goes a bit more in how to do comm.