Size: a a a

2020 February 27

V

Vyacheslav in pro.net
Mary
ну потому что я вижу у тебя будут проблемы если запустишь на линкусе? (если я правильно поняла ты ищешь по виндовой таймзоне а не иановской)
Там для этого ?? конструкция. Всё норм с названиями таймзон в приведенном коде работает
источник

IC

Ilya Chernoudov in pro.net
Vyacheslav
Можно поточнее?
источник

V

Vyacheslav in pro.net
Ilya Chernoudov
а время в utc или локальное?
Пока в UTC. Хз чего ждать дальше.
источник

V

Vyacheslav in pro.net
Gopneg
это у тебя чо там за недосубд?
https://www.postgresql.org/docs/current/datatype-datetime.html

Вопрос: в каком типе есть информация о таймзоне?
источник

V

Vyacheslav in pro.net
Ilya Chernoudov
ты тред до конца дочитай
Soon
источник

V

Vyacheslav in pro.net
К чему это? Где это использовать?
источник

G

Gopneg in pro.net
Vyacheslav
https://www.postgresql.org/docs/current/datatype-datetime.html

Вопрос: в каком типе есть информация о таймзоне?
в сортах говна не разбираюсь, но поиск по слову offset тебя спасет думаю
источник

IC

Ilya Chernoudov in pro.net
Vyacheslav
К чему это? Где это использовать?
можно сразу создать offset из даты и зоны
источник

V

Vyacheslav in pro.net
Ilya Chernoudov
можно сразу создать offset из даты и зоны
В какой строчке?
источник

IC

Ilya Chernoudov in pro.net
Vyacheslav
В какой строчке?
в последней
источник

V

Vyacheslav in pro.net
Vyacheslav
Кто-то ещё об эти грабли спотыкался?


DateTimeOffset f(long msVal) {
   TimeZoneInfo EST = TimeZoneInfo.GetSystemTimeZones().Where(x => x.Id == "Eastern Standard Time").SingleOrDefault() ?? TimeZoneInfo.FindSystemTimeZoneById("America/New_York");

   var dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(msVal / 1000);

   return TimeZoneInfo.ConvertTime(dt, EST);
}


Задачка не для слабонервных.
This
источник

V

Vyacheslav in pro.net
Ilya Chernoudov
в последней
Каким образом?
источник

IC

Ilya Chernoudov in pro.net
Vyacheslav
https://www.postgresql.org/docs/current/datatype-datetime.html

Вопрос: в каком типе есть информация о таймзоне?
источник

V

Vyacheslav in pro.net
Он информацию о таймзоне не хранит.
источник

V

Vyacheslav in pro.net
Но обрабатывает таймзону иначе.
источник

IC

Ilya Chernoudov in pro.net
Vyacheslav
Каким образом?
источник

M

Mary in pro.net
Vyacheslav
Там для этого ?? конструкция. Всё норм с названиями таймзон в приведенном коде работает
а проглядела, выглядит больно, почему б не заюзать таймзон конвертер
источник

V

Vyacheslav in pro.net
Vyacheslav
Кто-то ещё об эти грабли спотыкался?


DateTimeOffset f(long msVal) {
   TimeZoneInfo EST = TimeZoneInfo.GetSystemTimeZones().Where(x => x.Id == "Eastern Standard Time").SingleOrDefault() ?? TimeZoneInfo.FindSystemTimeZoneById("America/New_York");

   var dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(msVal / 1000);

   return TimeZoneInfo.ConvertTime(dt, EST);
}


Задачка не для слабонервных.
Короче, бага в том, что у
TimeZoneInfo.ConvertTime есть 2 версии: первая принимает и возвращает DateTime, вторая - DateTimeOffset. В свою очередь у DateTimeOffset есть implicit конструктор от DateTime, который создаёт DateTimeOffset с локальной таймзоной, и который я бы удалил нафиг. На практике получается, что на компьютере с локальным временем в EST всё работает, а на компьютере с другим локальным временем возвращается DateTimeOffset с правильным значением времени, но неправильным (по факту с локальным) offset.
При сравнении таких разных результатов на равенство получится false.
источник

V

Vyacheslav in pro.net
Близко
источник

V

Vyacheslav in pro.net
Mary
а проглядела, выглядит больно, почему б не заюзать таймзон конвертер
Чтоб людей доп. библиотеками не пугать
источник