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);