在使用FlashAir 2nd gen命令从FlashAir 2nd gen检索文件列表时,如下所述:FlashAir Get List CGI Command我得到了十进制的16位整数来表示文件的日期和时间。

该规范(在发布的链接中)解释了如何理解检索到的值,但是缺少Java示例。我尝试下载并检查FlashAir开发人员网站FlashAir Tutorial for Android - Downloading Content中发布的Android示例代码,但它们仅使用文件名,因此不执行任何转换。

最佳答案

只需提取指定的位。

假设您有一个short timeshort date

int seconds = (time & 31) * 2;
int minutes = (time >> 5) & 63;
int hours   = (time >> 11) & 31;
int day   = date & 31;
int month = (date >> 5) & 15;
int year  = ((data >> 9) & 127) + 1980;


然后,就用它做一个日期时间。

尚不清楚原始年份是否可以为负数。我写的是这样,如果它们应该是负数(代表1980年之前的日期),就不能删除它们,只需删除& 127

09-11 18:07