用于JSR 363的UCUM UnitFormat

我正在使用JSR 363“测量单位”和最新的参考实现:

 javax.measure unit-api 1.0   tec.units unit-ri 1.0.2  

我想打印出UCUM格式的“毫升”,即“毫升”:

 final UnitFormat unitFormat = ServiceProvider.current().getUnitFormatService().getUnitFormat(); final Unit unit = MILLI(LITRE); final String unitString=unitFormat.format(unit); 

不幸的是,这给了我“ml”,而不是来自UCUM的“mL”。 即使JSR 363规范(和源代码)在整个过程中引用了UCUM,但RI上的UnitFormatService.getAvailableFormatNames()只给出了“ASCII”和“Default”,所以我不能使用getUnitFormat("UCUM")因为JSR 363规范暗示我应该能做(如果只有人支持UCUM)。

那么我在哪里可以获得支持UCUM的JSR 363 UnitFormat实现?

有关UCUM的支持,请参阅JSR 363扩展模块https://github.com/unitsofmeasurement/uom-systems/tree/master/ucum-java8 。

它为Java SE 8上的度量单位统一代码提供支持。目前UCUMfunction更强大,解析使用了SymbolMap概念(基于Java ResourceBundles,虽然它不是本地敏感的),因此我们无法使其可用对于JSR 363 RI。 如果可以,请使用兼容的Java SE 8端口UoM SE 。