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?
In UCUM both l (lower case ell) and L are used for liter. The lower case is continental European style, the upper case is US style. Both are equivalent in UCUM. So it's just a style issue.