java jodatime

java - ¿Cadena de patrón de un DateTimeFormatter de joda-time?



jodatime (1)

¿Es posible obtener la cadena de patrón de un DateTimeFormatter de joda-time?

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd"); String originalPattern = formatter. ???


Joda Time no proporciona una manera de obtener el patrón original de un DateTimeFormatter. Una razón probablemente es que un DateTimeFormatter no se creó necesariamente a partir de un patrón; por ejemplo, DateTimeFormat.forStyle() no usa patrones en absoluto.

Sin embargo, si siempre usa patrones, podría envolver la clase DateTimeFormat para grabar el patrón cuando se construya el DateTimeFormatter . De esa manera, puedes buscarlo más tarde con un método estático simple. Por ejemplo:

public class ReversableDateTimeFormat { private static final Map<DateTimeFormatter, String> patternHistory = new HashMap<DateTimeFormatter, String>(); public static DateTimeFormatter forPattern(String pattern) { DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(pattern); patternHistory.put(dateTimeFormatter, pattern); return dateTimeFormatter; } public static String getPattern(DateTimeFormatter dateTimeFormatter) { return patternHistory.get(dateTimeFormatter); } }

Entonces puedes hacer esto:

DateTimeFormatter formatter = ReversableDateTimeFormat.forPattern("yyyyMMdd"); String originalPattern = ReverseableDateTimeFormat.getPattern(formatter);