Is your clock set to automatically receive Network time? If so, the culprit is your carrier. Also, under the Date and Time settings, check that your Time Zone is properly set up. The weather widget uses geolocation, so it knows where you are and therefore can display the correct time. Your phone, however, sets the clock on the settings you give it, and that leaves room for error.
- - - Updated - - -
Is your clock set to automatically receive Network time? If so, the culprit is your carrier. Also, under the Date and Time settings, check that your Time Zone is properly set up. The weather widget uses geolocation, so it knows where you are and therefore can display the correct time. Your phone, however, sets the clock on the settings you give it, and that leaves room for error.