Hello有没有办法在joda时间将String转换为DurationFieldType?
例如“years”=> DurationFieldType.years();
我正在尝试使用指定数量的单位(例如3年或5个monts等)来增加日期。我已经使用字符串值指定了qunantity(整数)和Time单位类型。
我想确定我没有忽视某些事情。我想出的最佳解决方案是使用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);
答案 0 :(得分:2)
目前没有办法进行查找。
如果你愿意,你可以在GitHub上分叉项目并添加一个方法来执行此操作 - DurationFieldType.of(String) - 这比上面的代码更多。加上一些测试。然后发送拉取请求; - )