来自joda-time DateTimeFormatter的模式字符串?
是否可以从joda-time DateTimeFormatter获取模式字符串?
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd"); String originalPattern = formatter. ???
Joda Time没有提供从DateTimeFormatter获取原始模式的方法。 一个原因可能是DateTimeFormatter不一定是从模式创建的; 例如, DateTimeFormat.forStyle()
根本不使用模式。
但是,如果始终使用模式,则可以在构造DateTimeFormatter
时包装DateTimeFormat
类以记录模式。 这样,您可以稍后使用简单的静态方法查找它。 例如:
public class ReversableDateTimeFormat { private static final Map patternHistory = new HashMap(); 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);