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

Форум для тех, кто программирует под Android
Ответить
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 МБ.

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