Сначала вы можете использовать toDate()
для преобразования метки времени Firebase в объект Date
, а затем использовать метод объекта Date
toDateString()
для преобразования его в строку.
const birthDate = user.birthDate.toDate();
const birthDateString = birthDate.toDateString();
Вы также можете проверить Moment.js , он очень помогает при работе с датами и их отображении.
Я не использовал XStream прежде, но я сериализировал, в спящем режиме - управляемые объекты. Это не забава.
Существует две больших проблемы:
Первый очевиден - Вам нужны фактические данные для сериализации. Последний менее - любые связи "один ко многим", Вы выступаете против интерфейсов набора (например: Set<T>
) будет включен собственным Hibernate (несериализуемый!) реализации набора. Это может быть то, где классы Hibernate выходят за край в Ваши объекты.
Я закончил тем, что писал отражающий код (на самом деле самосозерцательный), который сделал это:
Обратите внимание, что шаг 2 важен - если Вы замените наборы до закрывания сеанса, Будете в спящем режиме, то просто поместит его собственные наборы назад на завершение...
Править: @cliff.meyers определил деталь реализации, которую я забыл упоминать: если Вы делаете это, необходимо ограничить граф объектов, идя только к собственным объектам и часам для путей циклической ссылки (например: путем кэширования ссылок на объекты Вы уже шли).
Существует некоторая информация об этом (и пример кода) закончена в Codehaus JIRA:
http://jira.codehaus.org/browse/XSTR-226
Мы записали некоторые инструменты для работы вокруг этого вида проблемы для набора других реализаций дистанционной работы (Ось 1, Пламя DS, и т.д.). То, что мы сделали, очень похоже на решение Dan, хотя мы добавили способность объявить, какие контуры объектов обойти и чтобы "отрезать", потому что во многих ситуациях мы не интересовались всеми данными; это также привело бы к серьезным проблемам с "n+1, выбирает" проблему, происходящую тысячи времен!:) Я думаю, реализовывая преобразователь XStream, был бы оптимальный подход, так как необходимо будет только обойти граф объектов однажды. Если Вы устанавливаете FlushMode. РУКОВОДСТВО по Вашей Сессии, необходимо также смочь изменить граф объектов, поскольку Вы обходитесь, в спящем режиме, делая что-либо противное. Используйте это с осторожностью хотя, поскольку это - несколько усовершенствованная техника.
Я столкнулся с аналогичной проблемой, хотя я не использую спящий режим. Я посмотрел на enitity-pruner, но это не совсем то, что я искал, так как я искал более простое решение.
Я придумал очень простое решение, используя отражение, которое депроксимирует улучшенные объекты CGLIB как чары.
посетите http://www.anzaan.com/2010/06/serializing-cglib-enhanced-proxy-into-json-using-xstream/ , например, и код.