Size: a a a

Clojure — русскоговорящее сообщество

2020 January 07

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Maxim Penzin
так-то конечно просто удивительно....
ну в каком воспаленном мозгу мог возникнуть такой переход?

12C  Tonga Standard Time  (GMT+13:00) Nuku'alofa

80000040  Azerbaijan Standard Time   (GMT-03:00) Buenos Aires

... вот объясните мне, как программист программисту...
могли и налажать в табличке
библиотека на эти данные ссылается http://www.unicode.org/cldr/charts/latest/supplemental/zone_tzid.html
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
нет, ну они не полном серьезе там использовали 16-ти битные знаковые...
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
ойбля...
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Maxim Penzin
так-то конечно просто удивительно....
ну в каком воспаленном мозгу мог возникнуть такой переход?

12C  Tonga Standard Time  (GMT+13:00) Nuku'alofa

80000040  Azerbaijan Standard Time   (GMT-03:00) Buenos Aires

... вот объясните мне, как программист программисту...
явно налажали
Azerbaijan Standard Time  001  Asia/Baku
Azerbaijan Standard Time  AZ  Asia/Baku
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
в общем даже java.time не решает всех возможных ситуаций при работе с датами, поэтому нужны дополнительные библиотеки вроде http://time4j.net/
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
в общем даже java.time не решает всех возможных ситуаций при работе с датами, поэтому нужны дополнительные библиотеки вроде http://time4j.net/
«the target audience of Time4J will not only be business Java developers, but also developers with a more scientific background (for example extended time scale support including leap seconds or historically accurate dates)»
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Sergey Trofimov
напиши на питоне ответ для последней колонки, узнаем 😊
http://time4j.net/tutorial/appendix.html#x14
In [18]: c = dt.datetime.now(dt.timezone(dt.timedelta(hours=1)))

In [19]: (c + dt.timedelta(days=7+2-c.weekday())).replace(hour=17, minute=45)
Out[19]: datetime.datetime(2020, 1, 15, 17, 45, 33, 194880, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600)))

оно?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mike Bohdan
In [18]: c = dt.datetime.now(dt.timezone(dt.timedelta(hours=1)))

In [19]: (c + dt.timedelta(days=7+2-c.weekday())).replace(hour=17, minute=45)
Out[19]: datetime.datetime(2020, 1, 15, 17, 45, 33, 194880, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600)))

оно?
и где там париж?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Sergey Trofimov
и где там париж?
datetime.timezone(datetime.timedelta(seconds=3600))
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
таймзона +1
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну это не париж
летнее-зимнее время не учитывается
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
и ответ в каких единицаx? (я питоном не владею)
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
In [1]: import datetime as dt

In [2]: import pytz

In [3]: c = dt.datetime.now(pytz.timezone('Europe/Paris'))

In [4]: (c + dt.timedelta(days=7+2-c.weekday())).replace(hour=17, minute=45)
Out[4]: datetime.datetime(2020, 1, 15, 17, 45, 45, 428519, tzinfo=<DstTzInfo 'Europe/Paris' CET+1:00:00 STD>)
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
только надо доставить pytz
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mike Bohdan
In [18]: c = dt.datetime.now(dt.timezone(dt.timedelta(hours=1)))

In [19]: (c + dt.timedelta(days=7+2-c.weekday())).replace(hour=17, minute=45)
Out[19]: datetime.datetime(2020, 1, 15, 17, 45, 33, 194880, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600)))

оно?
там точно правильно написано условие для «next Wednesday»?
в joda-time для этого нужен «{complex workaround}»
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
... я уж не говорю про leap second
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Mike Bohdan
In [1]: import datetime as dt

In [2]: import pytz

In [3]: c = dt.datetime.now(pytz.timezone('Europe/Paris'))

In [4]: (c + dt.timedelta(days=7+2-c.weekday())).replace(hour=17, minute=45)
Out[4]: datetime.datetime(2020, 1, 15, 17, 45, 45, 428519, tzinfo=<DstTzInfo 'Europe/Paris' CET+1:00:00 STD>)
при вызове в любой день недели правильно посчитает «next Wednesday»?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Sergey Trofimov
при вызове в любой день недели правильно посчитает «next Wednesday»?
dt.timedelta(days=7+2-c.weekday())

0 - понедельник
6 - воскресенье

7 дней + среда - текущий день
источник

A

Andor in Clojure — русскоговорящее сообщество
Команда date -d 'next wednesday' чо выводит?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Maxim Penzin
... я уж не говорю про leap second
а вот это уже интереснее, спасибо
источник