¿Es posible obtener la cadena del patrón de un tiempo joda DateTimeFormatter?Cadena de patrón de un tiempo joda FechaTiempoFormato?
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd");
String originalPattern = formatter. ???
¿Es posible obtener la cadena del patrón de un tiempo joda DateTimeFormatter?Cadena de patrón de un tiempo joda FechaTiempoFormato?
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd");
String originalPattern = formatter. ???
Joda Time no proporciona una forma de obtener el patrón original de un DateTimeFormatter. Una razón es probable que un DateTimeFormatter no se haya creado necesariamente a partir de un patrón; por ejemplo, DateTimeFormat.forStyle()
no usa patrones en absoluto.
Sin embargo, si siempre usa patrones, puede ajustar la clase DateTimeFormat
para registrar el patrón cuando se construye el DateTimeFormatter
. De esta forma, 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 usted puede hacer esto:
DateTimeFormatter formatter = ReversableDateTimeFormat.forPattern("yyyyMMdd");
String originalPattern = ReverseableDateTimeFormat.getPattern(formatter);
Excelente. A veces, solo estás buscando un buen viejo "eso es imposible". Una buena solución, también, para los casos en que sea aplicable. – charleslparker
La respuesta es completamente correcta. Pero, si desea usar estilos y conocer el patrón, puede usar 'DateTimeFormat.patternForStyle()'. –
Asumo que está mirando para conseguir ' "AAAAMMDD"' espalda? En su ejemplo particular, podría declarar una variable 'String' separada. ¿Hay alguna razón que no sea suficiente? –
@MattBall, casi seguro porque es solo un ejemplo simplificado para ilustrar el problema. La pregunta en sí es lo suficientemente clara. –
FYI, Pregunta similar para java.time: [Obtenga la cadena de patrón original con un formato JDK 8 DateTimeFormatter?] (Http://stackoverflow.com/q/28949179/642706). Las clases java.time suplantan al proyecto Joda-Time. –