Форум программистов, компьютерный форум, киберфорум
ящюр
Войти
Регистрация
Восстановить пароль
Карта форума Блоги Сообщество Поиск Заказать работу  
Оценить эту запись

Перевод FileTime MicroSoft в Date Android

Запись от ящюр размещена 31.01.2014 в 22:47

FILETIME это 64-х разрядное значение, обозначающее количество интервалов по 100 наносекунд каждый, прошедших с первого января 1601 года. ( FILETIME structure. MSDN MicroSoft )
Класс Data в андроиде формируется в милисекундах начиная с 1 января 1970 года. Поэтому проводим некоторые операции преобразования.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
long pwdLastSet = Long.parseLong("130358883000000000");
        // это 64-х разрядное значение, обозначающее количество интервалов 
        // по 100 наносекунд каждый, прошедших с первого января 1601 года. ( FILETIME Майкрософт )
    
    long javaTime = pwdLastSet - 0x19db1ded53e8000L;     // Отнимаем 116444736000000000 (369 лет)
    javaTime /= 10000L;      // Переводим в секунды
  
    Date today = new Date(javaTime); // Здесь уже имеем преобразованное время отсчет корого идет 
                                     // в милисекундах с 1 января 1970 года
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");// Задаем формат
    
    String newDateString = sdf.format(today); // Здесь имеем дату вида 02/03/2014 12:05:00 
                                               //(формат указан строкой выше)
Размещено в Без категории
Показов 2662 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru