UCUM UnitFormat for JSR 363

2019-03-01 12:50发布

I'm using JSR 363 "Units of Measurement" with the latest reference implementation:

<dependency>
  <groupId>javax.measure</groupId>
  <artifactId>unit-api</artifactId>
  <version>1.0</version>
</dependency>

<dependency>
  <groupId>tec.units</groupId>
  <artifactId>unit-ri</artifactId>
  <version>1.0.2</version>
</dependency>

I want to print out "milliliters" in UCUM format, i.e. "mL":

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

Unfortunately this gives me "ml", not "mL" from UCUM. And even though the JSR 363 specification (and source code) teases me throughout with references to the UCUM, UnitFormatService.getAvailableFormatNames() on the RI only gives me "ASCII" and "Default", so I can't use getUnitFormat("UCUM") as the JSR 363 specification hints that I should be able to do (if only someone would support UCUM).

So where can I get a JSR 363 UnitFormat implementation supporting the UCUM?

1条回答
啃猪蹄的小仙女
2楼-- · 2019-03-01 13:33

See the JSR 363 extension module https://github.com/unitsofmeasurement/uom-systems/tree/master/ucum-java8 for UCUM support.

It provides support for the Unified Code for Units of Measure on Java SE 8. At the moment UCUM is more powerful and extensive, parsing uses a SymbolMap concept (based on Java ResourceBundles though it is not local-sensitive) so we cannot make it available for the JSR 363 RI. Please use the compatible Java SE 8 port UoM SE if you can.

查看更多
登录 后发表回答