Ayrat
блин, как же хорошо что в джаве 8 из коробки есть НОРМАЛЬНЫЕ примитивы для дат
Ayrat
нашёл баг, где вроде бы утц время становилось не утц из-за ебаного java.util.Date (аналог System.DateTime)
Ayrat
нашёл. и потратил день чтобы из 10к лок убрать все упоминания этого класса навсегда
Sergey
Ayrat
всегда напрягало зачем кто то пишет на util.Date когда есть Datetime
ну конкретно я заменил подобные времена на java.time.Instant
Ayrat
пришлось добавить клея на сочленениях с даунстримом и апстримом, но вроде всё работает
Sergey
ну конкретно я заменил подобные времена на java.time.Instant
хотябы ненадо возиться с календарем!
Ayrat
хотябы ненадо возиться с календарем!
ну да, мне надо просто знать таймстемп с эпохи
Ayrat
инстант в этом плане идеален
Ayrat
вот бы дотнет ещё задепрекейтил DateTime/DateTimeOffset
Aleksandr
а чем надо пользоваться? nodatime или как его там?
Ayrat
а чем надо пользоваться? nodatime или как его там?
ну да. Java8 joda-time (прародитель nodatime) просто включило в стд либу под неймспейсом java.time
Ayrat
то есть начиная с джава8 это рекомендуемый способ работы с временем, а старые классы надо убирать
Aleksandr
не знаю, не работал с ним
Ayrat
ну там всё правильно сделано
Anatoly
зависит от "работать"
Aleksandr
приходилось работать с календарными вычислениями в mssql. было куда более неудобно
Anatoly
DTO вполне достаточно для передачи всяких дат между СУБД и JSON
Ayrat
каждый раз когда я работал с DateTime/DateTimeOffset я приходил к мысли что они навека проклятые и самое правильное это юзать long
Ayrat
(ну типа юникс таймстемп)
Ayrat
человеческого типа для отображения такого вида даты в дотнете нет. из коробки только черезжопные
Ayrat
дейттаймоффсет не предлагать
Ayrat
работа с лонгом имеет свои проблемы - надо держать в голове, секунды это или миллисекунды. Что тоже беда, но чуть меньшая, т.к. до секунд урезают только совсем не очень
Ayrat
хотелось бы уже нодутайм в стд либу под неймспейс System.Time
Ayrat
и не забывать про leap second
а они в эпохальном времени есть?
x
а они в эпохальном времени есть?
вроде нет, и это проблема
Ayrat
ну эээ… почему это проблема?
x
потому что они есть в людском времени
Ayrat
это конвертация в ЛОКАЛЬНУЮ дату проблема
Roman
хотелось бы уже нодутайм в стд либу под неймспейс System.Time
потом же опять будут возмущаться, что МС спиздил опенсорс проект
Roman
можно ж просто подключить нодатайм (чего мы например еще не сделали лол)
Aleksandr
не мс, а .net foundation)
Roman
не мс, а .net foundation)
меняет дело!
Ayrat
можно ж просто подключить нодатайм (чего мы например еще не сделали лол)
ну вот в том и дело. Базовые примитивы говно, но все их юзают, да
Roman
ну вот в том и дело. Базовые примитивы говно, но все их юзают, да
ну нам пока просто достаточно UTC. С таймзонами особо не приходится работать, поэтому достаточно DateTime. Хотя в коде уже есть и DT и DTO, что лично меня немного бесит
Aleksandr
меняет дело!
в какой-то степени, да
Roman
в какой же?
Aleksandr
они сами делают опенсорсно, и сотрудничают не только с майкрософт
Anatoly
дейттаймоффсет не предлагать
отлично справляется с форматированием юникс таймстемпа в ISO строку с датой и обратно
Ayrat
отлично справляется с форматированием юникс таймстемпа в ISO строку с датой и обратно
класс String тоже отлично справляется с этим форматированием!
Ayrat
(внимание вопрос) А зачем тогда мне DTO?
Roman
да будет срач
Anatoly
класс String тоже отлично справляется с этим форматированием!
очень плохо, если ты по дороге какую-нибудь СУБД и ОРМ воткнёшь
Ayrat
long.ToString() Long.parse()
Anatoly
(внимание вопрос) А зачем тогда мне DTO?
для инкапсуляции логики, не нужной строкам в других местах
Anatoly
long.ToString() Long.parse()
iso формат даты ты зачем выкинул?
Ayrat
iso формат даты ты зачем выкинул?
ну потому что мне он не нужен например
Roman
кек
Roman
Но Анатолию же нужен
Ayrat
Ну тогда таймстемп тут не подойдёт и надо хранить дату
Ayrat
таймстемп он идеален для СРАВНЕНИЯ инстансов ВРЕМЕНИ, а не для отображения ДАТЫ
Roman
таймстемп трудно прочесть, будучи смертным.
Ayrat
дата != время
Anatoly
таймстемп он идеален для СРАВНЕНИЯ инстансов ВРЕМЕНИ, а не для отображения ДАТЫ
да, и иногда надо получить исошную строку с датой и временем из юниксового таймстемпа
Ayrat
время течёт только вперед, а даты могут очень интересно меняться. Даже назад откручиваться
Anatoly
И DTO отлично с этим справляется (пока мы говорим про UTC)
Ayrat
И DTO отлично с этим справляется (пока мы говорим про UTC)
вот замечу что для времени нет понятия UTC и таймзон
Ayrat
очень удобно
Ayrat
оно просто идёт
Anatoly
вот замечу что для времени нет понятия UTC и таймзон
это только не имеет никакого отношения к юниксовым таймстемпам.
Ayrat
и вот как раз всю эту ссанину даёт Instant класс. просто время
Anatoly
потому что они имеют таймзону
Roman
таймстемп он идеален для СРАВНЕНИЯ инстансов ВРЕМЕНИ, а не для отображения ДАТЫ
в твиторе у кого-то была охуенная идея, что в году должно быть 13 месяцев по 28 дней + новый год. И без таймзон, просто у всех разные business hours. Жить было бы проще
Ayrat
потому что они имеют таймзону
нет, не имеют. Они просто имеют дату начала эпохи отсчёта времени.
Ayrat
то есть просто некий 0
Anatoly
всё, что я хочу сказать, @omgszer , что пока тебе не нужна арифметика с датами, а надо из таймстемпа в утц в базе получать iso строку и обратно - DTO достаточно
Ayrat
а дальше таймстемп никак не липает вперёд
Anatoly
как только у тебя сложнее что-то, тогда nodatime и то не всегда
Anatoly
Anatoly
всё так. А если мне не надо даже даты?
тогда тебе не нужен юникс таймстемп или нода тайм вообще
Ayrat
мне нужно просто время. Такого DateTime / DateTimeOffset не дают
Roman
эх мечты
вот перейдем на метрическую систему и заживем