Как мой API может получать неправильно отформатированную временную метку ISO 8601?IOS

Программируем под IOS
Ответить
Anonymous
 Как мой API может получать неправильно отформатированную временную метку ISO 8601?

Сообщение Anonymous »

У меня есть приложение iOS/Android, отправляющее данные в серверную часть Python.
В обоих приложениях пользователь выбирает дату и время из средства выбора, и они отправляются на сервер. :
Android:

Код: Выделить всё

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String formattedDate = simpleDateFormat.format(date);
URL url = new URL("https://example.com/api/test?distance=" + distance + "&date=" + formattedDate);
iOS:

Код: Выделить всё

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
let formattedDate = formatter.string(from: date)
let url = URL(string: "https://example.com/api/test?distance=\(distance)&date=\(formattedDate)")!
На сервере это интерпретируется следующим образом:

Код: Выделить всё

date = request.GET.get('date', None)
if date:
journey_date = datetime.fromisoformat(date)
Только что произошла странная ошибка: сервер получает дату в неожиданном формате:

Код: Выделить всё

ValueError at /api/test/
Invalid isoformat string: '2024-05-20T3:38:12.711\u202fPMZ'
В основном время выглядит в формате AM/PM, а не в 24-часовом формате.
Во всех тестах, которые я проводил до сих пор, Я никогда не сталкивался с этим. Предполагая, что пользователь не отправлял ручной запрос конечной точке (например, через Postman) и только что использовал пользовательский интерфейс приложения, как можно получить дату в этом формате, если указанный формат был гггг-ММ-дд'Т' ЧЧ:мм:сс.ССС'Z'?

Подробнее здесь: https://stackoverflow.com/questions/785 ... -timestamp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»