.getTimezoneOffset()
метод сообщает о смещении часового пояса в минутах, рассчитывая "на запад" от часового пояса GMT/UTC, приводя к значению смещения, которое отрицательно к тому, к чему каждый обычно приучается. (Пример, нью-йоркское время, как сообщали бы, составляло бы +240 минут или +4 часа)
К тому, чтобы получать нормальное смещение часового пояса в часах, необходимо использовать:
var timeOffsetInHours = -(new Date()).getTimezoneOffset()/60
Важная деталь:
Примечание, что летнее время включено в результат - поэтому, что этот метод дает Вам, действительно время смещение - не фактическое географическое часовой пояс смещение.
Создайте ControlTemplate для DatePicker и установите для свойства "VerticalContentAlignment" элемента PART_TextBox значение "Центр".