Формат отметки времени Firestore в android против функции firebase - PullRequest
0 голосов
/ 08 апреля 2020

В моей платформе временная метка пожарного хранилища находится в

t: 7 апреля 2020 года в 12:07:16 UTC + 5: 30

, которая создается клиент android, использующий следующий код:

createdAt = new Timestamp(new Date());

пытается создать указанный выше формат даты изнутри облачной функции Firebase, но возвращает дату в следующем формате

t : "2020-04-07T20: 35: 08.717Z"

с использованием кода

t: new Date().toISOString()

также пытался

Firestore.Timestamp.now();

Может кто-нибудь, пожалуйста, помогите, чтобы как получить дату в том же формате, что и в точном коде android

, является заполнением объекта в облачной функции и возвращает время в вышеуказанном несовместимом формате

let messagePayload = {
          msg:"A test message",
          mt:"text",
          pm:"",
          pmdi:"",
          sb:"1908392XXXX",
          sdi:"Ichthyocentaurs",
          t: new Date().toISOString() 
        }

1 Ответ

1 голос
/ 08 апреля 2020

Формат, который вы видите на Android, в высокой степени определяет c для локали, на которой настроено устройство, и он будет сильно различаться в зависимости от языка и часового пояса. Этот формат строки по умолчанию обычно не должен использоваться ни для чего, кроме целей отладки.

Формат, который вы видите с помощью JavaScript, предназначен для передачи дат, отформатированных в виде строк, для совместного использования между системами, а не для отображения.

Если вам нужен определенный c формат даты в JavaScript, я настоятельно рекомендую использовать некоторую библиотеку или утилиту для форматирования даты и времени, как вы считаете нужным, предсказуемым образом. JavaScript не имеет встроенных "хороших" возможностей форматирования даты. Вместо этого попробуйте использовать что-то вроде moment js, чтобы точно указать желаемый формат строки.

Для вашего конкретного c случая, если вы пытаетесь отправить дату на android клиентское приложение, я также настоятельно рекомендую вам не форматировать это на бэкэнде, а вместо этого использовать утилиты форматирования даты, встроенные в платформу Android (например, DateFormat ) , Формат строки даты Java по умолчанию почти наверняка не тот, который вы хотите. Вы сможете отформатировать дату, используя локаль, предоставленную на устройстве Android, которую пользователь, скорее всего, предпочтет, исходя из своих настроек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...