Страница: 1 | 2 | 3 |
Вопрос: Работа со временем в VB.NET
Добавлено: 07.05.06 17:12
Автор вопроса: Alexei1
Есть ли в VB.NET что-нибудь по работе со временем? нужно менять часовой пояс на заданный, спасибо!
Ответы
Всего ответов: 35
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 08.05.06 02:09
Номер ответа: 2
Автор ответа:
Alexei1
Вопросов: 2
Ответов: 19
Профиль | | #2
Добавлено: 08.05.06 08:05
EROS
Благодарен, но можеш сделать пример? методом научного тыка у меня не получилось при нажатии на кнопку часовой пояс менялся на GMT -03:00, спасибо
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 08.05.06 11:52
Что-то я не совсем тебя понял.. менялся ГДЕ???
Ты, конкретней излагай задачу.. Если речь идет о системном времени.. то это уже совершенно другая тема, и TimeZone тут не помощник.. Этот класс помогает лишь с пересчетами времени в разных часовых поясах..
Номер ответа: 4
Автор ответа:
Alexei1
Вопросов: 2
Ответов: 19
Профиль | | #4
Добавлено: 08.05.06 13:14
Ну вот у меня щас время 13.00, мне нужно по нажатию на кнопку у меня часовой пояс менялся и следовательно время менялось на то какое щас в этом часовом поясе ну это можно сделать через стандартные часы в системе, но надо программно менять, надеюсь нормально объяснил?
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 09.05.06 00:26
Вот так ты можешь изменить системное время на нужное:
<StructLayout(LayoutKind.Sequential)> _
Structure SYSTEMTIME
<MarshalAs(UnmanagedType.U2)> _
Dim wYear As Short
<MarshalAs(UnmanagedType.U2)> _
Dim wMonth As Short
<MarshalAs(UnmanagedType.U2)> _
Dim wDayOfWeek As Short
<MarshalAs(UnmanagedType.U2)> _
Dim wDay As Short
<MarshalAs(UnmanagedType.U2)> _
Dim wHour As Short
<MarshalAs(UnmanagedType.U2)> _
Dim wMinute As Short
<MarshalAs(UnmanagedType.U2)> _
Dim wSecond As Short
<MarshalAs(UnmanagedType.U2)> _
Dim wMilliseconds As Short
End Structure
Public Class Form1
Private Declare Function SetSystemTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME) As Int32
Private Declare Sub GetSystemTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SysTime As New SYSTEMTIME
'Получаем системное время
GetSystemTime(SysTime)
'-03:00
SysTime.wHour -= 3
'Устанавливаем новое
SetSystemTime(SysTime)
End Sub
End Class
А что касается часового пояса, то это не более чем запись в реестре. Вся инфа находится в ветке
Номер ответа: 6
Автор ответа:
Alexei1
Вопросов: 2
Ответов: 19
Профиль | | #6
Добавлено: 09.05.06 07:21
Спасибо! буду пробовать
Номер ответа: 7
Автор ответа:
Alexei1
Вопросов: 2
Ответов: 19
Профиль | | #7
Добавлено: 09.05.06 07:21
Спасибо! буду пробовать
Номер ответа: 8
Автор ответа:
Alexei1
Вопросов: 2
Ответов: 19
Профиль | | #8
Добавлено: 17.05.06 01:33
Чо то я не понимаю есть время 3:35 PM (у меня по USA) делаю так
SysTime.wHour = 4
SysTime.wMinute = 45
далжно быть так 4:45 PM а получаеться так 8:45 PM, не пойму нечего...может быть чтото не так указываю? или из-за того что не указываю PM или AM?
P.S AM до полудня PM после полудня
Номер ответа: 9
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 17.05.06 02:43
3:35 PM-это то время которое ты видишь(15:35), т.е. отображаемое! т.е. это ситемное время +/- поправка на часовой пояс!!! Системное же время на этот момент совершенно другое! во первых оно храниться без всяких там АМ - РМ .. в обычном 24-х часовом формате. Ты сначала посмотри, ЧТО тебе вернула GetSystemTime и тогда все станет на свои места...
Номер ответа: 10
Автор ответа:
Alexei1
Вопросов: 2
Ответов: 19
Профиль | | #10
Добавлено: 17.05.06 03:04
Чтото не могу воспользоваться GetSystemTime, как посматреть реальное системное время? блин...а что теперь делать? можно просто взять и внаглую воткнуть нужное время несмотря на часовой пояс? или как легче всего установить нужное время? помогите пожалуйста, НУ ОЧЕНЬ нужно...плизз
Номер ответа: 11
Автор ответа:
Alexei1
Вопросов: 2
Ответов: 19
Профиль | | #11
Добавлено: 17.05.06 03:05
GetSystemTime в каком формате то? не в MsgBox не в TextBox не могу вывести...помогите решить проблему
Номер ответа: 12
Автор ответа:
Gennadei
Вопросов: 6
Ответов: 11
Профиль | | #12
Добавлено: 17.05.06 09:07
Для возвращения текущей системной даты и времени используется:
Dim objToday As Date = DateTime.Now
Номер ответа: 13
Автор ответа:
Gennadei
Вопросов: 6
Ответов: 11
Профиль | | #13
Добавлено: 17.05.06 09:27
strToday = Format(TimeOfDay, “MM/dd/yyyy h:mm am/pm”)
TextBox = strToday
Номер ответа: 14
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #14
Добавлено: 17.05.06 10:24
Gennadei, ему надо не текущее а СИСТЕМНОЕ время!!
Номер ответа: 15
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #15
Добавлено: 17.05.06 10:30
Ну,блин ты даешь... ты вообще про отладку приложения что нибудь слышал? а про breakpoint, debug.writeline, console.writeline????
в моем примере получается системное время, так вот поставь точку останова на SysTime.wHour -= 3 , и когда программана на этой строке остановится, наведи курсор на SysTime, и во высплывающей подсказке тебе будет расписана ВСЯ структура SYSTEMTIME.Именно в этом формате там все тебе и возвращается!!!