У меня было поле LocalTime (с использованием Joda Time) в классе домена Grails.Deserialize joda время от строки в grails?
Class WorkDone{
LocalTime duration
}
Теперь я изменил это поле в строку (с текстом ограничения), так что он может поддерживать продолжительность больше, чем 24 часа.
String duration
Проблема в том, что в базе данных уже есть некоторые данные. И я хочу дезинформировать эти данные через миграцию баз данных в Grails. Я использую Postgres, который сохраняет LocalTime как Bytea (двоичные данные).
Когда я звоню WorkDone.duration он возвращает мне строку вида:
\ xaced0005737200176f72672e6a6f64612e74696d652e4c6f63616c54696d65fffff44abbf29def0200024a000c694c6f63616c4d696c6c69734c000b694368726f6e6f6c6f677974001a4c6f72672f6a6f64612f74696d652f4368726f6e6f6c6f67793b78700000000000000000737200276f72672e6a6f64612e74696d652e6368726f6e6f2e49534f4368726f6e6f6c6f67792453747562a9c811667137502703000078707372001f6f72672e6a6f64612e74696d652e4461746554696d655a6f6e652453747562a62f019a7c321ae30300007870770500035554437878
Как я могу извлечь время из этой строки?
Вы пытались держать поле МестноеВремя и использовать [Joda Time Grails Plugin] (http://gpc.github.io/grails-joda-time/ руководство/persistence.html)? Также почему вы используете 'LocalTime' вместо' Duration' для постоянной продолжительности? – musketyr
Вы пробовали что-то вроде:
def str = "" as byte[]; def os = new ObjectInputStream(new ByteArrayInputStream(str)); LocalTime.Property.readObject(os);
– RaphaelНет, я не пробовал это. Попробуем и посмотрим. –