Определить часовой пояс в системе - Visual Basic .NET
Формулировка задачи:
Добрый день.
В общем первый вопрос: Как узнать какой часовой пояс, установленный на компьютере, на котором выполняется программа? Знаю что существует класс
TimeZone
иTimeZoneInfo
, но как его правильно использовать я так и не понял. А инфа на MSDN просто жуть какая..... В общем на форме у меня есть DGV, которая грузит данные с интернета. В этих данных есть расписание занятий с указанным временем начала. Допустим, 21:30 (это по UTC +03:00). Время это указано как строковый тип данных (String). Мне нужно сделать так, что бы программа при запуске определяла установленный на компьютере часовой пояс (допустим это будет UTC +05:00), вычисляла разницу в часах между UTC +3:00 и прибавила (или на оборот убавила) эту разницу в DGV. т.е. в нашем случае должно получится не 21:30 а 23:30 Ну как-то так. Третий день пытаюсь все это реализовать но пока без результатно. По этому обращаюсь к вам. Даже если я смогу найти разницу между часовыми поясами, то как я смогу прибавить или убавить ее, если в DGV время приходит как строка? Его можно будет перевести в дату? Заранее благодарюРешение задачи: «Определить часовой пояс в системе»
textual
Листинг программы
Dim lessonTime = "21:30" ' Время урока полученное из интернета Dim lessonTimeUtcOffset = TimeSpan.FromHours(3) ' Часовой пояс для даты урока ' Формируем дату занятия в исходном часовом поясе Dim now = DateTime.Now Dim lessonDTO As New DateTimeOffset(now.Year, now.Month, now.Day, 0, 0, 0, lessonTimeUtcOffset) lessonDTO += TimeSpan.ParseExact(lessonTime, "g", CultureInfo.GetCultureInfo("ru-RU")) ' Формируем дату занятия в локальном часовом поясе lessonDTO = New DateTimeOffset(lessonDTO.UtcDateTime, DateTimeOffset.Now.Offset) ' Получаем DateTime из DateTimeOffset ' Это делать необязательно т.к. можно работать с DateTimeOffset ' Dim lessonDate As DateTime = lessonDTO.DateTime
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д