如何从 5 位数字中获取日期



从我的代码中,我得到的制造日期如下:

.....
   - (NSDictionary *)getBatteryInfo
   {
    matching = IOServiceNameMatching("AppleSmartBattery");
    entry = IOServiceGetMatchingService(kIOMasterPortDefault, matching);
    IORegistryEntryCreateCFProperties(entry, &properties, NULL, 0);
    return (__bridge NSDictionary *)properties;
   }
......
  NSDictionary *Info = [self getBatteryInfo];
  NSNumber *manufacturerDate = [Info objectForKey:@"ManufactureDate"];  

我在Macbook中尝试了这些代码,并获得了17492作为日期,并且我还使用从App Store安装的应用程序检查了日期,并知道确切的日期是2014/02/20。

在另一台Macbook中,我得到16727作为日期,确切日期是2012/10/23。谁能告诉我如何使用这个 5 位数字计算确切日期。

日期根据第 5.1.26 节中的智能电池数据规范修订版 1.1 在位字段中发布(请参阅)

  • 位 0...4 => 天(值 1-31;5 位)
  • 位 5...8 => 个月(值 1-12;4 位)
  • 位 9...15 =自 1980 年以来的> 年(值 0-127;7 位)

上。例

17492 采用二进制表示法 0100010001010100(16 位数字的无符号解释)。所以

  • 位 0...4 => 10100 => 20 天
  • 位 5...8 => 0010 => 2 个月
  • 位 9...15 => 34 + 1980 = 2014 年

因此,我们得到 17492 是 2014/02/20

最新更新