2010-12-07 8 views
1

Я разбираю некоторые xml для данных руководства по телевизору и столкнулся с этой 18-значной меткой времени (633934980000869533). Похоже на отметки DateTime от C#. Кто-нибудь знает, как преобразовать это в обычную java Date/Time?Android: вопрос преобразования TimeStamp!

+0

Есть ли у вас хорошие доказательства того, что это * является значением .NET DateTime? Какую DateTime он должен представлять? – 2010-12-07 17:28:03

+0

(Только что проверено, и это будет 11 ноября 2009 года в .NET. Правильно ли это?) – 2010-12-07 17:29:45

ответ

5

Если значение равно, значение тика .NET, вы только что получили масштаб и переустановите его.

Полночь января 1970 первого представлен 621355968000000000 клещами в .NET, и 1 миллисекунды = 10000 тиков ... так:

public static Date fromDotNetTicks(long ticks) 
{ 
    // Rebase to Jan 1st 1970, the Unix epoch 
    ticks -= 621355968000000000L; 
    long millis = ticks/10000; 
    return new Date(millis); 
} 

Очевидно, вы, вероятно, хотите, чтобы извлечь эти магические числа в именованные константы :)

Я только что проверил, и код выше дает 11 ноября 2009 года, 1:00 по UTC.

Смежные вопросы