2012-05-24 116 views
0

你好有一種方法可以在joda時間將字符串轉換爲DurationFieldType嗎?如何將字符串轉換爲DurationFieldType?

例如「年」=> DurationFieldType.years();

我想增加日期與指定數量的單位,如3年或5 monts等我有qunantity(整數)和時間單位類型指定的字符串值。

我想確定我沒有忽視某些東西。我想出的最佳解決方案是使用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) - 它的功能可以做得更少。再加上一些測試。然後發送拉請求;-)