Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Паттерн для даты в формате ISO 8601 / 15 сообщений из 15, страница 1 из 1
15.02.2020, 03:20
    #39926966
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Есть регулярное выражение – паттерн для даты в формате ISO 8601

"^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))?)?$"

Приведите, пожалуйста, примеры даты, которая бы соответствовала указанному паттерну
...
Рейтинг: 0 / 0
16.02.2020, 00:50
    #39927105
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Shovgenyuk,

Добавите именованные группы в регулярку?
Не интересно просто валидировать.
...
Рейтинг: 0 / 0
16.02.2020, 00:51
    #39927106
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Shovgenyuk,

Вот так, например:

Код: powershell
1.
2.
3.
4.
^(?<year>-?(?:[1-9][0-9]*)?[0-9]{4})-(?<month>1[0-2]|0[1-9])-
(?<day>3[01]|0[1-9]|[12][0-9])T(?<hour>2[0-3]|[01][0-9]):
(?<minute>[0-5][0-9]):(?<second>[0-5][0-9])(?<ms>\.[0-9]+)?
(?<timezone>Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$
...
Рейтинг: 0 / 0
16.02.2020, 14:23
    #39927166
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
hVostt,

Я немогу влиять на регулярку. Она мне дана такая так есть.
Я должен отправить (по API) данные в соответствии с определенным форматом.
Одним из фрагментов данных есть дата.
API возвращает мне ошибку:
"expected \"2024-12-09T22:00:00.000Z\" to be a valid ISO 8601 date"
actual : "2024-12-09T22:00:00.000Z"
pattern : "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))?)?$"
raw_description : "expected \"%{actual}\" to be a valid ISO 8601 date"

Я не могу подобрать такой формат даты, который бы соответствовал указанному паттерну
...
Рейтинг: 0 / 0
16.02.2020, 14:30
    #39927167
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Shovgenyuk
hVostt,

Я немогу влиять на регулярку. Она мне дана такая так есть.
Я должен отправить (по API) данные в соответствии с определенным форматом.

Это очень прекрасно и замечательно что твоя задача не связана с программированием.
Похоже это сопровождение или эксплуатация какой-то системы.

Но для того чтобы оказать помощь себе и нам - попробуй упросить регулярку до фората годов "YYYY"
и проверь что 2020 туда подходит.

Надо просто убедится что это действительно ТА регулярка и ТОТ фрагмент кода о котором ты говоришь.

Давай go-go. Никто за тебя это не сделает. Нечего рыбалкой заниматься. Работай.
...
Рейтинг: 0 / 0
16.02.2020, 14:39
    #39927168
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Shovgenyuk
2024-12-09T22:00:00.000Z

А теперь читаем https://ru.wikipedia.org/wiki/ISO_8601 и удивляемся что у тебя делает Z в конце строки.
...
Рейтинг: 0 / 0
16.02.2020, 18:18
    #39927206
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Shovgenyuk,

Это дата без времени.
...
Рейтинг: 0 / 0
16.02.2020, 19:33
    #39927217
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Dimitry Sibiryakov
Shovgenyuk
2024-12-09T22:00:00.000Z

А теперь читаем https://ru.wikipedia.org/wiki/ISO_8601 и удивляемся что у тебя делает Z в конце строки.

Если Z нет тогда непонятно в какой точки земли это время взято.
...
Рейтинг: 0 / 0
17.02.2020, 01:02
    #39927246
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Shovgenyuk
hVostt,

Я немогу влиять на регулярку. Она мне дана такая так есть.
Я должен отправить (по API) данные в соответствии с определенным форматом.
Одним из фрагментов данных есть дата.
API возвращает мне ошибку:
"expected \"2024-12-09T22:00:00.000Z\" to be a valid ISO 8601 date"
actual : "2024-12-09T22:00:00.000Z"
pattern : "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))?)?$"
raw_description : "expected \"%{actual}\" to be a valid ISO 8601 date"

Я не могу подобрать такой формат даты, который бы соответствовал указанному паттерну


Да не вопрос, бро!

Под эту регулярку подойдут такие значения:

-1265
6494
1485
-3807
2217-W50
+3337
+6414-W12
9936
-1785-
-4904W173

Проверьте сами.
...
Рейтинг: 0 / 0
17.02.2020, 01:04
    #39927247
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Либо вы испортили регулярку, либо по башке надавать индивидууму с регуляркой головного мозга.
...
Рейтинг: 0 / 0
17.02.2020, 07:29
    #39927260
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
OoCc
Если Z нет тогда непонятно в какой точки земли это время взято.
А если Z присутствует, то всё равно - непонятно.
...
Рейтинг: 0 / 0
17.02.2020, 10:07
    #39927295
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
hVostt
Shovgenyuk
hVostt,

Я немогу влиять на регулярку. Она мне дана такая так есть.
Я должен отправить (по API) данные в соответствии с определенным форматом.
Одним из фрагментов данных есть дата.
API возвращает мне ошибку:
"expected \"2024-12-09T22:00:00.000Z\" to be a valid ISO 8601 date"
actual : "2024-12-09T22:00:00.000Z"
pattern : "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))?)?$"
raw_description : "expected \"%{actual}\" to be a valid ISO 8601 date"

Я не могу подобрать такой формат даты, который бы соответствовал указанному паттерну


Да не вопрос, бро!

Под эту регулярку подойдут такие значения:

-1265
6494
1485
-3807
2217-W50
+3337
+6414-W12
9936
-1785-
-4904W173

Проверьте сами.

За исключением предпоследнего - всё правильно. Да и предпоследний распознаётся-то правильно, группа 1 дает чистый год.
Неправильно распознаётся 2011W12-3 - нехватает группы для отделения дефиса от дня недели
...
Рейтинг: 0 / 0
17.02.2020, 10:14
    #39927298
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Basil A. Sidorov
OoCc
Если Z нет тогда непонятно в какой точки земли это время взято.
А если Z присутствует, то всё равно - непонятно.

Почему непонятно? Это UTC и с точки зрения привязки времени это то же самое что и GMT
...
Рейтинг: 0 / 0
17.02.2020, 10:32
    #39927306
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
Shovgenyuk,
написано же в диагностике практически русским языком:
автор"expected \"2024-12-09 T 22:00:00.000 Z \" to be a valid ISO 8601 date"


даже не вглядываясь:
в 'твоём' регулярном выражении нет ни буквы T , ни буквы Z .
И что тут можно обсуждать?
...
Рейтинг: 0 / 0
17.02.2020, 10:40
    #39927313
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерн для даты в формате ISO 8601
volodin661
Shovgenyuk,
написано же в диагностике практически русским языком:
автор"expected \"2024-12-09 T 22:00:00.000 Z \" to be a valid ISO 8601 date"


даже не вглядываясь:
в 'твоём' регулярном выражении нет ни буквы T , ни буквы Z .
И что тут можно обсуждать?
Зачем там T или Z? Там времени-то нет. Этот паттерн распознаёт только дату в ISO 8601. Если по простому то типа 20110203
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Паттерн для даты в формате ISO 8601 / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]