Python - как преобразовать и определить тип даты 5 di git? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть некоторые поля даты, представленные в виде чисел 5-di git. И есть сопоставление чисел с действительной датой. Однако я не могу понять, какие logi c следует применять для преобразования чисел в даты в формате "%Y-%m-%d"?

13581 -> 2007-03-09
12784 -> 2005-01-01

Ответы [ 3 ]

2 голосов
/ 18 июня 2020

Показанные числа представляют собой количество дней с 1 января 1970 года, что является источником Unix времени.

Их можно преобразовать, например, используя:

from datetime import datetime, timedelta
n = 13581
print((datetime.utcfromtimestamp(0) + timedelta(n)).strftime("%Y-%m-%d"))

дает :

2007-03-09

Здесь timedelta вызывается с одним аргументом, являющимся смещением в днях. Обычно он вызывается с timedelta(days, seconds, microseconds), но все эти аргументы по умолчанию равны нулю.

2 голосов
/ 18 июня 2020

Как показано

import datetime
datetime.date(2005, 1, 1)-datetime.timedelta(days=12784)
# datetime.date(1970, 1, 1)

, ваше число - это количество дней с 01.01.1970.

Итак, вы можете получить дату с помощью:

datetime.date(1970, 1, 1) + datetime.timedelta(days=12784)
# datetime.date(2005, 1, 1)
0 голосов
/ 18 июня 2020

Вот go:

>>> from datetime import date, timedelta
>>> (date(1970,1,1) + timedelta(days=12784)).strftime("%Y-%m-%d")
'2005-01-01'
...