Я работаю с android BLE.Текущее время как 32-битная временная метка UNIX и смещение по времени
Необходимо написать характеристику Текущее время как 32-битная отметка времени UNIX. После этого напишите текущий часовой пояс, смещенный с UTC в секундах. Вероятно, проблема заключается в том, чтобы скрыть 32 байтовый массив, но я не уверен на 100%.
Я сделал это, но что-то не так. Он очень быстро растет и, в конце концов, пропускает 0x7FFF, FFFF, то есть он переполняется и становится отрицательным, поскольку timestamp - целое число со знаком.
private byte[] getCurrentUnixTime() {
int unixTime = (int) (System.currentTimeMillis()/1000L);
byte[] currentDate = Converter.intTo32ByteArray(unixTime);
return currentDate;
}
private byte[] getCurrentTimeOffset() {
TimeZone tz = TimeZone.getDefault();
Date timeNow = new Date();
int offsetFromUtc = tz.getOffset(timeNow.getTime())/1000;
byte[] offsetFromUtcByteArray = Converter.intTo32ByteArray(offsetFromUtc);
return offsetFromUtcByteArray;
}
public static byte[] intTo32ByteArray(int number) {
byte[] byteArray = new byte[]{
(byte) (number >> 24),
(byte) (number >> 16),
(byte) (number >> 8),
(byte) number
};
return byteArray;
}