Python中如何提取日期时间秒数及获取不带秒的文件修改时间?
在Python中处理日期时间:提取秒数与格式化文件修改时间
我来帮你搞定这两个问题~
一、如何从日期时间中提取秒数
根据你手上的日期时间类型,有两种常见处理方式:
- 如果是
datetime.datetime对象,直接访问它的second属性就能拿到秒数:
from datetime import datetime current_time = datetime.now() print(current_time.second) # 输出当前时间的秒数
- 如果是时间戳(比如
os.path.getmtime()返回的就是Unix时间戳),先把它转成datetime对象再提取秒数:
import os from datetime import datetime # 获取文件修改时间戳 timestamp = os.path.getmtime("/home/sulata/Documents/source/") # 转成datetime对象 dt_object = datetime.fromtimestamp(timestamp) # 提取秒数 print(dt_object.second)
二、获取不带秒数的文件修改时间
你现在用time.ctime()得到的是固定格式的字符串,没法直接去掉秒数。推荐用格式化字符串的方式来生成你想要的结果,下面给两种简单的实现方法:
方法1:使用time模块
import os import time def get_mtime_without_seconds(file_path): # 获取修改时间戳 mtime_timestamp = os.path.getmtime(file_path) # 把时间戳转成本地时间,再格式化为不带秒数的字符串 return time.strftime("%a %b %d %H:%M %Y", time.localtime(mtime_timestamp)) # 调用函数输出结果 print(get_mtime_without_seconds("/home/sulata/Documents/source/")) print(get_mtime_without_seconds("/home/sulata/Documents/destination/"))
方法2:使用datetime模块(更直观)
import os from datetime import datetime def get_mtime_without_seconds(file_path): mtime_timestamp = os.path.getmtime(file_path) # 时间戳转datetime对象 dt_object = datetime.fromtimestamp(mtime_timestamp) # 格式化输出不带秒数的时间 return dt_object.strftime("%a %b %d %H:%M %Y") # 调用输出 print(get_mtime_without_seconds("/home/sulata/Documents/source/")) print(get_mtime_without_seconds("/home/sulata/Documents/destination/"))
这里的格式化字符串%a %b %d %H:%M %Y对应:
%a:星期缩写(比如Mon)%b:月份缩写(比如Apr)%d:日期(比如2)%H:%M:小时:分钟(比如15:56)%Y:四位数年份(比如2018)
这样输出的结果就和你原来的格式一致,但去掉了秒数部分啦~
内容的提问来源于stack exchange,提问作者Bilal Ali Akbar
相关产品推荐
相关产品推荐

