美制/英制单位,带Java';s计量单位API
我只看到Java度量单位标准中的公制单位。当然,其他人想用脚、英寸和英里来工作,但我找不到任何相关的东西。有人能告诉我我错过了什么吗美制/英制单位,带Java';s计量单位API,java,units-of-measurement,Java,Units Of Measurement,我只看到Java度量单位标准中的公制单位。当然,其他人想用脚、英寸和英里来工作,但我找不到任何相关的东西。有人能告诉我我错过了什么吗 我可以做Quantity weight=quanties.getQuantity(1,Units.kg),其中是数量重量=数量.getQuantity(1,Units.POUND)?对于比国际单位制更宽的测量,您可以在项目中使用一些其他API(包括indriyaAPI) 具体来说,CLDR和USCustomary类可能会引起兴趣。但是,我没有成功地将不同类别的单位
我可以做
Quantity weight=quanties.getQuantity(1,Units.kg)代码>,其中是数量重量=数量.getQuantity(1,Units.POUND)代码>?对于比国际单位制更宽的测量,您可以在项目中使用一些其他API(包括indriya
API)
具体来说,CLDR
和USCustomary
类可能会引起兴趣。但是,我没有成功地将不同类别的单位组合在一起,例如用于转换(参见下面注释掉的代码)
一些例子:
import javax.measure.Quantity;
import javax.measure.quantity.Length;
import javax.measure.quantity.Mass;
import systems.uom.unicode.CLDR;
import systems.uom.common.USCustomary;
import tec.units.ri.quantity.Quantities;
import tec.units.ri.unit.Units;
...
Quantity<Mass> weight1 = Quantities.getQuantity(1, Units.KILOGRAM);
Quantity<Mass> weight2 = Quantities.getQuantity(1, USCustomary.POUND);
// javax.measure.IncommensurableException: kg is not compatible with lb
//Double d2 = Units.KILOGRAM.getConverterTo(CLDR.POUND).convert(1);
Quantity<Mass> weight3 = Quantities.getQuantity(123.45, CLDR.GRAM);
Quantity<Mass> weight4 = Quantities.getQuantity(123.45, CLDR.OUNCE);
Quantity<Mass> weight5 = Quantities.getQuantity(123.45, CLDR.OUNCE_TROY);
Double ounces = CLDR.GRAM.getConverterTo(CLDR.OUNCE)
.convert(weight3.getValue()).doubleValue();
System.out.println(weight3.getValue() + " grams = " + ounces + " ounces");
Quantity<Length> dist1 = Quantities.getQuantity(123.45, CLDR.KILOMETER);
Double miles = CLDR.KILOMETER.getConverterTo(CLDR.MILE)
.convert(dist1.getValue()).doubleValue();
System.out.println(dist1.getValue() + " kilometers = " + miles + " miles");
我对此的POM依赖项是:
<dependencies>
<dependency>
<groupId>javax.measure</groupId>
<artifactId>unit-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>tec.units</groupId>
<artifactId>unit-ri</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>systems.uom</groupId>
<artifactId>systems-unicode</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>systems.uom</groupId>
<artifactId>systems-common</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>systems.uom</groupId>
<artifactId>systems-quantity</artifactId>
<version>2.0.2</version>
</dependency>
</dependencies>
javax.measure
单位api
2
技术单位
单位ri
1.0.3
系统单位
unicode系统
2.0.2
系统单位
通用系统
2.0.2
系统单位
系统数量
2.0.2
对于比国际单位制更宽的测量,您可以在项目中使用一些其他API(包括indriya
API)
具体来说,CLDR
和USCustomary
类可能会引起兴趣。但是,我没有成功地将不同类别的单位组合在一起,例如用于转换(参见下面注释掉的代码)
一些例子:
import javax.measure.Quantity;
import javax.measure.quantity.Length;
import javax.measure.quantity.Mass;
import systems.uom.unicode.CLDR;
import systems.uom.common.USCustomary;
import tec.units.ri.quantity.Quantities;
import tec.units.ri.unit.Units;
...
Quantity<Mass> weight1 = Quantities.getQuantity(1, Units.KILOGRAM);
Quantity<Mass> weight2 = Quantities.getQuantity(1, USCustomary.POUND);
// javax.measure.IncommensurableException: kg is not compatible with lb
//Double d2 = Units.KILOGRAM.getConverterTo(CLDR.POUND).convert(1);
Quantity<Mass> weight3 = Quantities.getQuantity(123.45, CLDR.GRAM);
Quantity<Mass> weight4 = Quantities.getQuantity(123.45, CLDR.OUNCE);
Quantity<Mass> weight5 = Quantities.getQuantity(123.45, CLDR.OUNCE_TROY);
Double ounces = CLDR.GRAM.getConverterTo(CLDR.OUNCE)
.convert(weight3.getValue()).doubleValue();
System.out.println(weight3.getValue() + " grams = " + ounces + " ounces");
Quantity<Length> dist1 = Quantities.getQuantity(123.45, CLDR.KILOMETER);
Double miles = CLDR.KILOMETER.getConverterTo(CLDR.MILE)
.convert(dist1.getValue()).doubleValue();
System.out.println(dist1.getValue() + " kilometers = " + miles + " miles");
我对此的POM依赖项是:
<dependencies>
<dependency>
<groupId>javax.measure</groupId>
<artifactId>unit-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>tec.units</groupId>
<artifactId>unit-ri</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>systems.uom</groupId>
<artifactId>systems-unicode</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>systems.uom</groupId>
<artifactId>systems-common</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>systems.uom</groupId>
<artifactId>systems-quantity</artifactId>
<version>2.0.2</version>
</dependency>
</dependencies>
javax.measure
单位api
2
技术单位
单位ri
1.0.3
系统单位
unicode系统
2.0.2
系统单位
通用系统
2.0.2
系统单位
系统数量
2.0.2