46

我怎样才能转换os.path.getctime() 到正确的时间?

我的源代码是:

import os

print("My Path: "+os.getcwd())
print(os.listdir("."))
print("Root/: ",os.listdir("/"))


for items in os.listdir("."):
    if os.path.isdir(items):
        print(items+" "+"Is a Directory")
        print("---Information:")
        print("    *Full Name: ",os.path.dirname(items))
        print("    *Created Time: ",os.path.getctime(items))
        print("    *Modified Time: ",os.path.getmtime(items))
        print("    *Size: ",os.path.getsize(items))
    else:
        print(items+" Is a File")

输出:

---Information:
    *Full Name:  
    *Created Time:  1382189138.4196026
    *Modified Time:  1382378167.9465308
    *Size:  4096
4

5 回答 5

95

我假设在正确的时间你的意思是将时间戳转换为对人类更有意义的东西。如果是这种情况,那么这应该有效:

>>> from datetime import datetime
>>> datetime.fromtimestamp(1382189138.4196026).strftime('%Y-%m-%d %H:%M:%S')
'2013-10-19 16:25:38'
于 2013-10-21T18:52:47.887 回答
3

我一直在寻找同样的问题,并在答案的帮助下间接解决它。所以一个解决方案:

import os
import time
import datetime

# FILE_IN a file...

file_date = time.ctime(os.path.getmtime(FILE_IN))
file_date = datetime.datetime.strptime(file_date, "%a %b %d %H:%M:%S %Y")
print("Last modif: %s" % file_date.strftime('%Y-%m-%d %H:%M:%S'))

使用此解决方案:具有良好值的日期对象,转换示例以查看它(使用良好的字符串格式插入到 mysql 数据库中)。

于 2020-09-24T11:29:54.317 回答
2

文档

返回值是一个数字,给出自纪元以来的秒数(参见time模块)

time我们看到的模块中localtime()

使用以下函数在时间表示之间进行转换:

...

| 自纪元以来的秒数| struct_time当地时间| localtime()|

并从那里用于strftime()获取您想要的格式

于 2013-10-21T18:53:58.807 回答
2

您还可以使用time模块中的ctime函数。

import os
import time

c_time = os.path.getctime(r'C:\test.txt')
print(c_time)
print(time.ctime(c_time))

输出:

1598597900.008945
Fri Aug 28 09:58:20 2020
于 2020-08-28T07:09:24.900 回答
-1
>>> from datetime import date
>>> date.fromtimestamp(path.getatime("/Users"))
    datetime.date(2015, 3, 10)
于 2015-03-31T08:11:13.127 回答