2010-10-06 8 views
7

Mam plik z datami i godzinami wymienionych jako ogromne numery, takie jak 634213557000000000. Uważam, że jest to .NET tick. To liczba 100 nanosekundowych przyrostów od północy 1 stycznia, 1 A.D. Jaki jest dobry sposób, aby to przeczytać w obiekcie python datetime?Jak przekonwertować tick znak .NET do datetime Pythona?

+1

Myślę, że nadużywanie epokę termin. Epoka nie jest liczbą - to podstawa, z której liczą się liczby. Tak więc epoka wartości .NET DateTime jest 1 stycznia, 1AD. W wielu innych systemach (w tym w Pythonie) jest 1 stycznia 1970 roku. –

+0

Byłem w trakcie zmiany tego zaznaczenia po tym komentarzu. –

+0

Wow, pytania z .NET w tytule otrzymują odpowiedź bardzo szybko! –

Odpowiedz

14
datetime.datetime(1, 1, 1) + datetime.timedelta(microseconds = ticks/10) 

Dla przykładu, to zwraca

datetime.datetime(2010, 9, 29, 11, 15) 
+0

Dla kompatybilności z Python 3 można użyć 'mikrosekund = ticks // 10', aby uniknąć utraty precyzji z wartościami zmiennoprzecinkowymi. – jfs

Powiązane problemy