Class VIN

java.lang.Object
org.miaixz.bus.core.data.VIN

public class VIN extends Object
VIN是Vehicle Identification Number的缩写,即车辆识别号码。VIN码是全球通行的车辆唯一标识符,由17位数字和字母组成。

不同位数代表着不同意义,具体解释如下:

  • 1-3位:WMI制造商标示符,代表车辆制造商信息
  • 4-8位:VDS车型识别代码,代表车辆品牌、车系、车型及其排量等信息
  • 9位:校验位,通过公式计算出来,用于验证VIN码的正确性
  • 10位:年份代号,代表车辆生产的年份
  • 11位:工厂代码,代表车辆生产工厂信息
  • 12-17位:流水号,代表车辆的生产顺序号
VIN码可以找到汽车详细的个人、工程、制造方面的信息,是判定一个汽车合法性及其历史的重要依据。

本实现参考以下标准:

Since:
Java 17+
Author:
Kimi Liu
  • Constructor Summary

    Constructors
    Constructor
    Description
    VIN(String vinCode)
    构造
  • Method Summary

    Modifier and Type
    Method
    Description
    获取VIN码
    获取国家或地区代码
    char
    获取装配厂字码
    生产序号 年产量大于1000为6位,年产量小于1000的为3位
    获取车辆说明部分 VDS(Vehicle Descriptor section)
    获取车辆特征代码(Vehicle Descriptor Code),相对于VDS,不包含校验位。
    获取车辆指示部分 VIS(Vehicle Indicator Section)
    获取世界制造厂识别代号WMI(World Manufacturer Identifier) 对年产量大于或等于1000辆的完整车辆或非完整车辆制造,车辆识别代号的第一部分为世界制造)厂识别代号(WMI) 对年产量小于1000辆的完整车辆和/或非完整车辆制造厂,第三部分的三、四、五位与第一部分的三位字码一起构成世界制造厂识别代号(WMI)
    Get year.
    getYear(int multiple)
    Gets year.
    boolean
    是否是年产量小于1000的车辆制造厂
    static VIN
    of(String vinCode)
    创建VIN
    static boolean
    verify(String vinCode)
    校验VIN码有效性,要求: 满足正则:Pattern.CAR_VIN_PATTERN 满足第9位校验位和计算的检验值一致

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • VIN

      public VIN(String vinCode)
      构造
      Parameters:
      vinCode - VIN码
  • Method Details

    • of

      public static VIN of(String vinCode)
      创建VIN
      Parameters:
      vinCode - VIN码
      Returns:
      VIN对象
    • verify

      public static boolean verify(String vinCode)
      校验VIN码有效性,要求:
      Parameters:
      vinCode - VIN码
      Returns:
      是否有效
    • getCode

      public String getCode()
      获取VIN码
      Returns:
      VIN码
    • getCountryCode

      public String getCountryCode()
      获取国家或地区代码
      Returns:
      国家或地区代码
    • getWMI

      public String getWMI()
      获取世界制造厂识别代号WMI(World Manufacturer Identifier) 对年产量大于或等于1000辆的完整车辆或非完整车辆制造,车辆识别代号的第一部分为世界制造)厂识别代号(WMI) 对年产量小于1000辆的完整车辆和/或非完整车辆制造厂,第三部分的三、四、五位与第一部分的三位字码一起构成世界制造厂识别代号(WMI)
      Returns:
      WMI
    • isLessThan1000

      public boolean isLessThan1000()
      是否是年产量小于1000的车辆制造厂
      Returns:
      是否年产量小于1000
    • getVDS

      public String getVDS()
      获取车辆说明部分 VDS(Vehicle Descriptor section)
      Returns:
      VDS值
    • getVehicleDescriptorCode

      public String getVehicleDescriptorCode()
      获取车辆特征代码(Vehicle Descriptor Code),相对于VDS,不包含校验位。
      Returns:
      车辆特征代码
    • getVIS

      public String getVIS()
      获取车辆指示部分 VIS(Vehicle Indicator Section)
      Returns:
      VIS
    • getYear

      public Year getYear()
      Get year.
      Returns:
      the year
    • getOemCode

      public char getOemCode()
      获取装配厂字码
      Returns:
      由厂家自行定义的装配厂字码 string
    • getYear

      public Year getYear(int multiple)
      Gets year.
      Parameters:
      multiple - 1 代表从 1980年开始的第一个30年
      Returns:
      the year
    • getProdNo

      public String getProdNo()
      生产序号 年产量大于1000为6位,年产量小于1000的为3位
      Returns:
      生产序号 string