2012-05-24 2 views
0

Привет, есть способ конвертировать String в DurationFieldType во время joda?Как преобразовать строку в DurationFieldType?

Например, "years" => DurationFieldType.years();

Я пытаюсь увеличить дату с указанным количеством единиц, например, 3 года или 5 месяцев и т. Д. У меня есть курант (целое число) и тип единицы времени, указанный со значением String.

Я хочу быть уверенным, что ничего не забыл. Лучшее решение, которое я придумал, заключается в использовании HashMap

Map<String, DurationFieldType> fieldMap = new HashMap<String, DurationFieldType>(); 
fieldMap.put("year", DurationFieldType.years()); 
fieldMap.put("month", DurationFieldType.months()); 
fieldMap.put("day", DurationFieldType.days()); 
fieldMap.put("week", DurationFieldType.weeks()); 
fieldMap.put("hour", DurationFieldType.hours()); 
... 
map = Collections.unmodifiableMap(fieldMap); 

DateTime from = new DateTime(...); 
Period period = new Period().withField(fieldMap.get(someObject.getTimeUnit()), someObject.getDuration()); 
DateTime to = from.plus(period); 

ответ

2

Нет текущего способа сделать этот поиск.

Если вы хотите, вы можете разветвить проект на GitHub и добавить метод для этого - DurationFieldType.of (String) - это делает больше того, что делает ваш код выше. Плюс некоторые тесты. И затем отправьте запрос на тягу ;-)

Смежные вопросы