0

您好,有没有办法在 joda 时间内将 String 转换为 DurationFieldType?

例如“年” => 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);
4

1 回答 1

2

目前没有办法进行这种查找。

如果您愿意,您可以在 GitHub 上分叉该项目并添加一个方法来执行此操作 - DurationFieldType.of(String) - 这与您上面的代码所做的一样多。加上一些测试。然后发送拉取请求;-)

于 2012-06-11T09:39:20.450 回答