Я хочу извлечь год, месяц, день, часы, мин, каждый раз из значения ниже.
import os, time, os.path, datetime
date_of_created = time.ctime(os.path.getctime(folderName))
date_of_modi = time.ctime(os.path.getmtime(folderName))
Теперь я могу получить только как «Четверг 26 декабря 19:21:37 2019», но я хочу получить значение отдельно 2019 // Дек (Могу ли я получить это как int ??) // 26 каждый
Я хочу извлекать каждый год, месяц, день, каждый раз, минимальное значение из date_of_created и date_of_modi. Могу ли я получить его? в питоне?
Всего 4 ответа
Вы можете преобразовать строку в объект datetime:
from datetime import datetime
date_of_created = datetime.strptime(time.ctime(os.path.getctime(folderName)), "%a %b %d %H:%M:%S %Y") # Convert string to date format
print("Date created year: {} , month: {} , day: {}".format(str(date_of_created.year),str(date_of_created.month),str(date_of_created.day)))
time.ctime([secs])
Преобразуйте время, выраженное в секундах с начала эпохи, в строку вида: «Sun Jun 20 23:21:05 1993», представляющий местное время.
Если это не то, что вы хотите ... использовать что-то еще? time.getmtime
вернет struct_time
которая должна иметь соответствующие поля, или для более современного интерфейса использовать datetime.datetime.fromtimestamp
который ... возвращает объект datetime
из метки времени UNIX.
Кроме того, использование stat
, вероятно, будет более эффективным, поскольку ctime и mtime, вероятно, будут выполнять каждый вызов stat
внутри себя.
Вы можете использовать модуль datetime, точнее fromtimestamp()
из модуля datetime, чтобы получить то, что вы ожидаете.
import os, time, os.path, datetime
date_of_created = datetime.datetime.fromtimestamp(os.path.getctime(my_repo))
date_of_modi = datetime.datetime.fromtimestamp(os.path.getmtime(my_repo))
print(date_of_created.strftime("%Y"))
Выход будет в 2020
для репо, созданного в 2020 году.
Все форматы доступны по этой ссылке
Функция time.ctime
возвращает местное время в виде string
. Возможно, вы захотите использовать функцию time.localtime
, которая возвращает объект struct_time
который содержит информацию, которую вы ищете. Как пример,
import os, time
date_created_string = time.ctime(os.path.getctime('/home/b-fg/Downloads'))
date_created_obj = time.localtime(os.path.getctime('/home/b-fg/Downloads'))
print(date_created_string) # Mon Feb 10 09:41:03 2020
print('Year: {:4d}'.format(date_created_obj.tm_year)) # Year: 2020
print('Month: {:2d}'.format(date_created_obj.tm_mon)) # Month: 2
print('Day: {:2d}'.format(date_created_obj.tm_mday)) # Day: 10
Обратите внимание, что это integer
значения, как и было запрошено.