Синхронизация времени с сервером

Просмотр 15 сообщений - с 16 по 30 (из 34 всего)
  • Автор
    Сообщения
  • #26394
    a80808
    Участник

    Посмотрите здесь, возможно тот же случАй…

    #26407
    Mikhail
    Модератор

    Кажется я что-то делаю не так?

    Если что-то не работает, информация об ошибках будет полезна. Я у себя не проверял, написал только идею.

    #26459
    Seliverstoff.yu
    Участник

    Заметил, что при подстановки этой формулы, в определенное времы, кажется после полуночи, до скольки не засек, время выводится как 1899 год, не сталкивались? А у тром потом смотрю опять нормально все по дате)

    #26477
    Mikhail
    Модератор

    Определите, в какой именно диапазон времени проявляется проблема. Сделайте скриншоты.

    #26480
    Seliverstoff.yu
    Участник

    Хорошо, постараюсь засечь на выходных, но думаю может, когда число становится отрицательным в 00:00, и -7 часов делают невозможным правильное поведение формулы, но это только предположение😊

    #26532
    Seliverstoff.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

    • Этот ответ был изменен 1 год, 4 месяца назад от Seliverstoff.yu.
    #26534
    manjey73
    Участник

    Какая у вас формула?
    Часы наверное надо в формуле отнимать при помощи AddHours(double value)
    Чтобы отнимало, ввести отрицательное значение -7.0
    А не просто при создании указывать текущий час — 7

    #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 часов

    #26536
    manjey73
    Участник

    Еще попробовать вариант

    DateTime.SpecifyKind(new DateTime (double year, double month, double day, double hour, double minute, double second), DateTimeKind.Utc).ToOADate();

    Не проверял

    #26537
    manjey73
    Участник

    new DateTime (double year, double month, double day, double hour, double minute, double second).ToUniversalTime().ToOADate()

    Или что-то вроде этого

    #26538
    manjey73
    Участник

    testTime

    Последнюю формулу проверил, если убрать ToUniversalTime() и выставить текущее время то на WEB я получаю на +3 часов вперед так как часовой пояс Москва + 3 часа

    • Этот ответ был изменен 1 год, 4 месяца назад от manjey73.
    #26540
    manjey73
    Участник

    з.ы. может не хватить объема строки формулы если вписывать не числа а Val(XXX)

    #26541
    manjey73
    Участник

    з.ы. Это вот тот результат перевода сервера на UTC время, добро пожаловать в костыли 🙂

    #26542
    Romiros
    Участник

    Попробуйте ToLocalDateTime(). Вроде я ее использовал с utc и проблем не было.

    #26544
    Seliverstoff.yu
    Участник

    эта формула не сработала, так же отображает +7 часов.

Просмотр 15 сообщений - с 16 по 30 (из 34 всего)
  • Вы должны авторизироваться для ответа в этой теме.