Joda
Time无法提供从DateTimeFormatter获取原始模式的方法。原因之一可能是DateTimeFormatter不一定是从模式创建的。例如
DateTimeFormat.forStyle()根本不使用模式。
但是,如果您始终使用模式,则可以包装
DateTimeFormat该类以在
DateTimeFormatter构建时记录模式。这样,您以后可以使用简单的静态方法进行查找。例如:
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); }}然后,您可以执行以下操作:
DateTimeFormatter formatter = ReversableDateTimeFormat.forPattern("yyyyMMdd");String originalPattern = ReverseableDateTimeFormat.getPattern(formatter);


