Email or username:

Password:

Forgot your password?
nonsense :twittercheck:

Блять, ну ёбаный в рот, сука. Неужели нельзя было за эти десятилетия добавить в стандарт JSON тип ДАТА/ВРЕМЯ? Ну какого хуя это просто всего-лишь строка. Ну придумайте префикс перед строкой там я не знаю типа как:

"myDate" : date"2023-10-03T18:27:44Z"

В Python же есть u'String' и ничего, удобно.

17 comments
Мя :sparkles_lesbian:

@nonsense в том же Python есть pydantic, который успешно находит datetime в строчках :р

nonsense :twittercheck:

@mo это если повезет. 2020-05-15 - это дата или номер телефона? :)

Мя :sparkles_lesbian:

@nonsense в документации написано

nonsense :twittercheck:

@mo документация предполагает некие соглашения, которые васяны из 1С на хую вертели

Мя :sparkles_lesbian:

@nonsense я сомневаюсь, что в одном и том же поле может быть абсолютно на рандом дата или номер телефона, причем без каких либо опознавательных знаков

А если опознавательные знаки есть, на них можно настроить Pydantic :blobfoxgoogly:

Мя :sparkles_lesbian:

@nonsense это мало о чем говорит, но Pydantic совместно с typing.Literal и typing.Union довольно мощная штука

KizhiFox :blobfoxcomputer:

@nonsense потому что чтобы стандарт не разрастался

nonsense :twittercheck:

@kizhifox то, что дата - это отдельный тип данных, ты не согласен?

KizhiFox :blobfoxcomputer:

@nonsense строго говоря согласен, но с этими 100500 типами данных можно наступить на грабли YAML, где три основных парсера для одинакового простого примера выдадут разный результат

nonsense :twittercheck:

@kizhifox да не нужен парсер. Просто десериализатору нужно четкое понимание, что конкретное поле - это дата. А в кавычках пусть будет что угодно.

Конечно, сейчас можно придумать костыли типа соглашения по названию полей типа:

"vasyaDateTime" : "2023-10-03T18:27:44Z"
"petyaDate" : "2023-10-03"

т.е. смотреть окончание названия и прыгать от этого, но это все костыли конечно и не спасет когда долбоебы шлют json'ы с названием "param1": "01-01-2000" а ты даже не ебешь в каком порядке там месяц и число

KizhiFox :blobfoxcomputer:

@nonsense ну это уже проблемы в соглашениях ваших API

D:\side\

@nonsense u'String' в Pyhton это тоже раздражающий костыль, от которого пора бы избавиться – чтобы строки переваривали Юникод по умолчанию безо всяких u. :blobcatthinksmart:

Что до JSON – в какой-то мере в этом его прелесть, что в нём только самое-самое необходимое, что переварится везде и одинаково (ну, почти; даже в нём не обошлось без приколов вроде дублирования ключей). А дата/время очень уж много где со странными приколами.

Кстати, как раз в JS, в браузерном, класс даты/времени внушительно проклят.

@nonsense u'String' в Pyhton это тоже раздражающий костыль, от которого пора бы избавиться – чтобы строки переваривали Юникод по умолчанию безо всяких u. :blobcatthinksmart:

Что до JSON – в какой-то мере в этом его прелесть, что в нём только самое-самое необходимое, что переварится везде и одинаково (ну, почти; даже в нём не обошлось без приколов вроде дублирования ключей). А дата/время очень уж много где со странными приколами.

nonsense :twittercheck:

@dside в ванильной Java класс Date тоже проклят. В Oracle БД, кстати, тоже. Но простой способ определить, что в поле тип дата/время просто ОБЯЗАН быть, когда к тебе прилетает произвольный JSON и надо его заиндексировать. Вот и ебешься, определяешь, дата это или строка с номером телефона.

D:\side\

@nonsense JS помянут не просто так же – JSON оттуда вырос.

И даже самый крутой формат не спасёт от дерьмово спроектированного API, в котором значения так вот вперемешку. Мы (индустрия то бишь) до сих пор хороним мегапродвинутый XML.

Roman

@nonsense ты еще в языки программирования попроси добавить как примитивные типы дату и время, еще с таймзонами :)

sun_rise

@nonsense Всегда же можно выразить через timestamp.

Go Up