Я пытаюсь получить метку времени для «Местная полночь в UT C», используя. NET Core.
Я написал этот код:
var utcTimeStartLocalDay =
TimeZoneInfo.ConvertTimeToUtc(convertToLocalTimezone(DateTime.UtcNow).Date);
, где
public DateTime ConvertToLocalTimezone(DateTime dateTime)
{
return TimeZoneInfo.ConvertTime(dateTime, TimeZoneInfo.Utc,TimeZoneInfo.FindSystemTimeZoneById("FLE Standard Time"));
}
Итак, идея состоит в том, чтобы получить Ut c отметку времени, преобразовать ее в локальную TZ, затем взять Date (то есть отбросить часть времени и эффективно сделать отметку времени полуночи) и преобразовать обратно в Ut c - это должно было дать мне местное время.
Однако этого не произошло, так как результатом первого выражения было Ut c полночь при печати.
Fiddle: https://dotnetfiddle.net/wJIXve
Что мне нужно исправить здесь, чтобы получить в качестве ответа местную полночь для дня, выраженного в UT C (что-то вроде 22:00 UT C в предыдущий день)?
Изменить: просто чтобы прояснить неясность в вопросе: под "местным" TZ я имел в виду известный местный часовой пояс (найден в коде)