UCUM UnitFormat对JSR 363

问题描述 投票:1回答:2

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

<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>

我想用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实现?

java units-of-measurement jsr363 ucum
2个回答
0
投票

在UCUM中,l(小写字母)和L都用于升。小写字母为欧洲大陆风格,大写字母为美式风格。两者在UCUM中都是等价的。所以这只是一个风格问题。


-1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.