Java 如何将字符串转换为DurationFieldType?

Java 如何将字符串转换为DurationFieldType?,java,jodatime,Java,Jodatime,您好,有没有办法在joda time中将字符串转换为DurationFieldType 例如“years”=>DurationFieldType.years() 我试图用指定的单位数增加日期,如3年或5个月等。我用字符串值指定了数量(整数)和时间单位类型 我想确定我没有忽略什么。我想出的最佳解决方案是使用HashMap Map<String, DurationFieldType> fieldMap = new HashMap<String, DurationFieldType&

您好,有没有办法在joda time中将字符串转换为DurationFieldType

例如“years”=>DurationFieldType.years()

我试图用指定的单位数增加日期,如3年或5个月等。我用字符串值指定了数量(整数)和时间单位类型

我想确定我没有忽略什么。我想出的最佳解决方案是使用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);
Map fieldMap=newhashmap();
fieldMap.put(“年”,DurationFieldType.years());
fieldMap.put(“月”,DurationFieldType.months());
fieldMap.put(“day”,DurationFieldType.days());
fieldMap.put(“week”,DurationFieldType.weeks());
fieldMap.put(“hour”,DurationFieldType.hours());
...
map=集合。不可修改的map(fieldMap);
DateTime from=新的日期时间(…);
Period Period=new Period().withField(fieldMap.get(someObject.getTimeUnit()),someObject.getDuration());
DateTime to=从.plus开始(期间);

当前没有执行该查找的方法

如果您愿意,您可以在GitHub上分叉项目,并添加一个方法-DurationFieldType.of(String)-该方法所做的工作与上面的代码所做的工作相比要少一些。再加上一些测试。然后发送拉取请求;-)