Почему эта строка даёт мне локальное время с компьютера?
System.DateTime.SpecifyKind(System.DateTime.Now, System.DateTimeKind.Utc).ToString();
var currentTimeInUTC = DateTime.UtcNow;
или
var currentTimeInUTC = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now);
Метод SpecifyKind, под капотом не производит никакого конвертирования (к/от UTC) с переданной ему датой. Фактически там происходит следующее:
return new DateTime(value.InternalTicks, kind);
Таким образом просто меняется признак к какому часовому поясу относится значение даты(либо ни к какому в случае Unspecified)
Как уже сказано в ответе, конвертирование происходит при вызове
TimeZoneInfo.ConvertTimeToUtc
Есть более короткие записи:
DateTime.Now.ToUniversalTime()
DateTime.UtcNow.ToLocalTime()
Если интересно понять как преобразования работают внутри, смотрите класс TimeZoneInfo и его методы:
TimeZoneInfo.ConvertTimeFromUtc()
TimeZoneInfo.ConvertTimeToUtc()
Виртуальный выделенный сервер (VDS) становится отличным выбором
Основываясь на справочнике по структуре документа с разрешениемdoc решил написать программу для получения текстовой части этого документа
На данный вопрос уже ответили:
Полет пули к цели с практически одинаковой скоростью осуществляется с помощью данного скрипта:
Реализую простой фасад для сокрытия более низкоуровневых решенийЕсть модель данных: