Java 中日期的字节数组
Byte array to Date in Java
我有一个字节数组,其中 4 个字节取自 drv 的 header,这 4 个字节代表视频帧的时间戳。所以我需要将这 4 个字节转换为日期或时间戳。这是我为第一帧获得的数组和值:
byte[] array= {192, 242, 217, 84};
非常感谢任何帮助。
byte[] array= {192, 242, 217, 84};
int timestamp = ByteBuffer.wrap(array).getInt();
谢谢大家我已经做到了。这里有解决方案:
String binary=toBin(head[11])+toBin(head[10])+toBin(head[9])+toBin(head[8]);
long unixSeconds=stringToInt(binary);
Date date = new Date(unixSeconds*1000L);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
sdf.setTimeZone(TimeZone.getDefault());
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
public static String toBin(byte numDec){
int num= UnsignedBytes.toInt(numDec);
if(num==0)
return "00000000";
String result=Integer.toBinaryString(num);
int cont= 8-result.length()%8;
if(cont!=8){
for(int i=0; i<cont;i++){
result="0"+result;
}
}
return result; }
public static long stringToInt(String bin){
long result=0;
bin= bin.trim();
for(int i=bin.length()-1;i>=0;i--){
String aux= String.valueOf(bin.charAt(i));
result+= Integer.parseInt(aux)* Math.pow(2, (bin.length()-1-i));
}
return result;
}
我有一个字节数组,其中 4 个字节取自 drv 的 header,这 4 个字节代表视频帧的时间戳。所以我需要将这 4 个字节转换为日期或时间戳。这是我为第一帧获得的数组和值:
byte[] array= {192, 242, 217, 84};
非常感谢任何帮助。
byte[] array= {192, 242, 217, 84};
int timestamp = ByteBuffer.wrap(array).getInt();
谢谢大家我已经做到了。这里有解决方案:
String binary=toBin(head[11])+toBin(head[10])+toBin(head[9])+toBin(head[8]);
long unixSeconds=stringToInt(binary);
Date date = new Date(unixSeconds*1000L);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
sdf.setTimeZone(TimeZone.getDefault());
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
public static String toBin(byte numDec){
int num= UnsignedBytes.toInt(numDec);
if(num==0)
return "00000000";
String result=Integer.toBinaryString(num);
int cont= 8-result.length()%8;
if(cont!=8){
for(int i=0; i<cont;i++){
result="0"+result;
}
}
return result; }
public static long stringToInt(String bin){
long result=0;
bin= bin.trim();
for(int i=bin.length()-1;i>=0;i--){
String aux= String.valueOf(bin.charAt(i));
result+= Integer.parseInt(aux)* Math.pow(2, (bin.length()-1-i));
}
return result;
}