У меня очень простая задача, а TimeZoneInfo.ConvertTime()
дает неверный результат.Я просто хочу найти текущую дату и время в часовом поясе Австралии.
string timeZone = "Cen. Australia Standard Time";
TimeZoneInfo zoneID = TimeZoneInfo.FindSystemTimeZoneById(timeZone);
DateTime nowAtTimeZone = TimeZoneInfo.ConvertTime(DateTime.UtcNow, zoneID);
// result: 24/10/2018 7:43:29 PM
// actual ACST time: 24/10/2018 6:43:29 PM (this is what I want)
// actual ACDT time: 24/10/2018 7:43:29 PM (this is not what I want)
Я получил реальное время ACST отсюда: https://www.timeanddate.com/time/zones/acst
И фактическое ACDTотсюда время: https://www.timeanddate.com/time/zones/acdt
Обратите внимание, что замена TimeZoneInfo.ConvertTime()
на TimeZoneInfo.ConvertTimeFromUtc()
дает идентичные результаты.
Обратите внимание, что часовой пояс введен клиентом, и это вся информация, которую я имеюимеется в наличии.Они не записывают город.
Результат от TimeZoneInfo.ConvertTime()
, по-видимому, дает время ACDT, хотя я указал ACST.
Возможно, проблема в том, что TimeZoneInfo.ConvertTime()
применяет дневной светэкономия на ACST, когда не должно быть?Если так, как я могу предотвратить это?