是否有可能从joda-time DateTimeFormatter获取模式字符串?
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd");
String originalPattern = formatter. ???
Run Code Online (Sandbox Code Playgroud)
gut*_*tch 21
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);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
DateTimeFormatter formatter = ReversableDateTimeFormat.forPattern("yyyyMMdd");
String originalPattern = ReverseableDateTimeFormat.getPattern(formatter);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15490 次 |
| 最近记录: |