Стартовая страница › Форумы › Понять, как работает ПО › Формулы › Синхронизация времени с сервером
- В этой теме 33 ответа, 6 участников, последнее обновление 3 года, 6 месяцев назад сделано
Seliverstoff.yu.
-
АвторСообщения
-
02.12.2022 в 22:21 #2639403.12.2022 в 11:04 #26407
MikhailМодераторКажется я что-то делаю не так?
Если что-то не работает, информация об ошибках будет полезна. Я у себя не проверял, написал только идею.
06.12.2022 в 06:05 #26459Seliverstoff.yu
УчастникЗаметил, что при подстановки этой формулы, в определенное времы, кажется после полуночи, до скольки не засек, время выводится как 1899 год, не сталкивались? А у тром потом смотрю опять нормально все по дате)
06.12.2022 в 12:51 #26477
MikhailМодераторОпределите, в какой именно диапазон времени проявляется проблема. Сделайте скриншоты.
06.12.2022 в 13:19 #26480Seliverstoff.yu
УчастникХорошо, постараюсь засечь на выходных, но думаю может, когда число становится отрицательным в 00:00, и -7 часов делают невозможным правильное поведение формулы, но это только предположение?
07.12.2022 в 19:52 #26532Seliverstoff.yu
УчастникОшибка начинается с 00:00. Ночью во сколько ошибка исчезает не засек, но создал канал с теми же данными, но не в формате дата время, а просто как число, и вот до 6:59 фиксируется ошибка в формуле, скорее всего из-за отрицательного значения элемента часы (все что до 7 часов минус 7 получается отрицательное значение), а с 7 часов ошибка пропадает в графике.
https://disk.yandex.ru/i/APlNEUrjS_gmDw
https://disk.yandex.ru/i/P_HraxADGpRasg
https://disk.yandex.ru/i/DTNGcy0hmN5Qgw
https://disk.yandex.ru/i/NALzaC-FteQYNg-
Ответ изменён 3 года, 6 месяцев назад пользователем
Seliverstoff.yu.
07.12.2022 в 21:55 #26534
manjey73УчастникКакая у вас формула?
Часы наверное надо в формуле отнимать при помощи AddHours(double value)
Чтобы отнимало, ввести отрицательное значение -7.0
А не просто при создании указывать текущий час — 707.12.2022 в 22:01 #26535
manjey73Участникpublic double GetTime (double year, double month, double day, double hour, double minute, double second) { DateTime dateTime = new DateTime((int)year, (int)month, (int)day, (int)hour, (int)minute, (int)second); dateTime.AddHours(-7); return dateTime.ToOADate(); }Вот так отнять ваши 7 часов
07.12.2022 в 22:06 #26536
manjey73УчастникЕще попробовать вариант
DateTime.SpecifyKind(new DateTime (double year, double month, double day, double hour, double minute, double second), DateTimeKind.Utc).ToOADate();Не проверял
07.12.2022 в 22:10 #26537
manjey73Участникnew DateTime (double year, double month, double day, double hour, double minute, double second).ToUniversalTime().ToOADate()Или что-то вроде этого
07.12.2022 в 22:20 #26538
manjey73Участник
Последнюю формулу проверил, если убрать ToUniversalTime() и выставить текущее время то на WEB я получаю на +3 часов вперед так как часовой пояс Москва + 3 часа
-
Ответ изменён 3 года, 6 месяцев назад пользователем
manjey73.
07.12.2022 в 22:22 #26540
manjey73Участникз.ы. может не хватить объема строки формулы если вписывать не числа а Val(XXX)
07.12.2022 в 22:34 #26541
manjey73Участникз.ы. Это вот тот результат перевода сервера на UTC время, добро пожаловать в костыли 🙂
07.12.2022 в 23:13 #26542Romiros
УчастникПопробуйте ToLocalDateTime(). Вроде я ее использовал с utc и проблем не было.
08.12.2022 в 08:00 #26544Seliverstoff.yu
Участникэта формула не сработала, так же отображает +7 часов.
-
Ответ изменён 3 года, 6 месяцев назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
