Разница между DateTime и DateTimeOffset при работе с датами в разных часовых поясах заключается в том, что DateTimeOffset более гибкий в этом случае, так как использует смещение от UTC. 2
DateTime подходит для работы с датами, которые относятся к одной временной зоне или к универсальному времени в формате UTC. 2 Структура содержит свойство Kind, которое предоставляет ограниченные сведения о часовом поясе, к которому принадлежит дата и время. 4
DateTimeOffset, в свою очередь, позволяет работать с датами и временем из разных временных зон, так как включает информацию о смещении, по которому были установлены текущие дата и время. 2 Структура не привязана к определённому часовому поясу, но может исходить из различных часовых поясов. 4
Таким образом, DateTimeOffset рекомендуется использовать, когда нужно работать с датами в разных часовых поясах и сохранять информацию о смещении без конвертации в локальное время. 2