Хорошо, чтобы уточнить это, у вас есть две части информации:
Вы хотите узнать, существуют ли в данный момент UTC какие-либо часовые пояса, в которых указана дата. Обратите внимание, что ваш разговор о «сегодня» в вопросе не дает уникального значения для даты (из-за разных часовых поясов - мое «сегодня» может не совпадать с вашим), именно поэтому я явно сформулировал его в терминах функции с двумя параметрами.
По сути, вам нужно выполнить итерацию. Псевдокод:
for each time zone tz
localTime = tz.GetLocalTime(utc)
if (localTime.GetDate() == targetDate)
return true
return false
Теперь вы можете определенно оптимизировать это, находя самые большие и самые маленькие смещения часового пояса, которые дадут вам «истинный» результат, и применяя границы. Я не могу вспомнить, каковы самые большие и самые маленькие смещения, когда-либо, но я бы безопасно предположил, что если вам нужно больше +15 или меньше -15, вы можете немедленно вернуть false.
Вы также можете сократить проверяемые часовые пояса, чтобы использовать только те, которые, как известно, находятся на пределе в определенный момент истории .
Если только это не критично для производительности, я бы написал простой код и оставил бы TODO для оптимизации:)