当前位置: 首页 > news >正文

python中的时间模块

(1)time模块

1.获取时间戳(time方法)

time.time():返回从 1970 年 1 月 1 日午夜(历元)到现在的秒数

import timeif __name__ == "__main__":ticks = time.time()print(ticks)   # 1687943966.2764587

2.获取时间元组(localtime方法)

time.localtime():返回一个时间元组(包含9个整数成员的对象):

  1. tm_year 年 如2000,2022等
  2. tm_mon 月 范围1~12
  3. tm_mday 日 范围1~31
  4. tm_hour 小时 范围0~23
  5. tm_min 分钟 范围0~59
  6. tm_sec 秒 0~61 (60~61 是闰秒) 秒的取值范围为0~61,考虑到闰一秒或闰两秒的情形。
  7. tm_wday 星期 范围0~6 (0表示周一)
  8. tm_yday 儒略日 1到366
  9. tm_isdst 夏令时 0、1或-1
  • time.localtime():返回当前时间的时间元组
  • time.localtime(时间戳):返回特定时间的时间元组

import timeif __name__ == "__main__":localtime1 = time.localtime()print(localtime1)   print(localtime1.tm_year)# 2023print(localtime1.tm_hour)# 17ticks = time.time() + 60*60localtime2 = time.localtime(ticks) print(localtime2)print(localtime2.tm_year)# 2023print(localtime2.tm_hour)# 18

3.格式化时间(asctime方法、ctime()方法)

import timeformat_time = time.asctime(time.localtime())
print(format_time)  # ed Jun 28 17:31:58 2023

此处也可直接使用asctime(),因为asctime()的缺省值为localtime()返回的当前时间。

亦可使用 ctime() , ctime() 等价于 asctime(localtime())。

4.自定义格式化时间(strftime 方法)

我们可以使用 time 模块的 strftime 方法来格式化日期:time.strftime(format[, t]),第一个参数是格式化字符串,第二个参数是时间元组。

import timeprint(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))   
# 2023-06-28 17:33:25print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))  
# Wed Jun 28 17:33:25 2023

格式化符号 含意

%a 本地化的缩写星期中每日的名称。

%A 本地化的星期中每日的完整名称。

%b 本地化的月缩写名称。

%B 本地化的月完整名称。

%c 本地化的适当日期和时间表示。

%d 十进制数 [01,31] 表示的月中日。

%H 十进制数 [00,23] 表示的小时(24小时制)。

%I 十进制数 [01,12] 表示的小时(12小时制)。

%j 十进制数 [001,366] 表示的年中日。

%m 十进制数 [01,12] 表示的月。

%M 十进制数 [00,59] 表示的分钟。

%p 本地化的 AM 或 PM 。

%S 十进制数 [00,61] 表示的秒。

%U 十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)。 在第一个星期日之前的新年中的所有日子都被认为是在第 0 周。

%w 十进制数 [0(星期日),6] 表示的周中日。

%W 十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)。 在第一个星期一之前的新年中的所有日子被认为是在第 0 周。

%x 本地化的适当日期表示。

%X 本地化的适当时间表示。

%y 十进制数 [00,99] 表示的没有世纪的年份。

%Y 十进制数表示的带世纪的年份。

%z 十进制带符号数[-1200,+1200]表示时区。

%Z 时区名称。

%% 字面的 ‘%’ 字符。

5.其它函数

  • gmtime([secs]) 将秒转换为UTC时间的时间元组
  • mktime(t) 将时间元组转换为当地时间
  • sleep(n) 休眠n秒

(2)datetime 和 dateutil 模块

1.查看datetime模块的所有属性和方法

from datetime import datetime# 查看所有属性和方法
print(dir(datetime))
for item in dir(datetime):print(item)

2.用datetime 和 dateutil处理时间

获取当前时间

from datetime import datetime
from dateutil import parser# 获取当前时间
nowtime = datetime.now()
print(type(nowtime))    # <class 'datetime.datetime'>
print(nowtime)

创建特定日期的时间

# datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
date = datetime(year=2018, month=12, day=16) 
print(type(date))  # <class 'datetime.datetime'>
print(date)        # 2018-12-16 00:00:00

两个时间之间相减可得到deltatime

time1=datetime(year=2018, month=12, day=16, hour=1, minute=0, second=0) 
time2=datetime(year=2018, month=12, day=16, hour=1, minute=30, second=0) 
print(time2-time1)
time3 = datetime.now()+(time2-time1)
print(time3)

获取datetime.datetime的一些属性

print(date.year)
print(date.month)
print(date.day)
print(date.hour)
print(date.minute)
print(date.second)

获取某个日期的weekday,返回0-6:0是星期一,6是星期天

print(datetime.weekday(date))

将特定时间字符串转化为datetime.datetime

date = parser.parse("16th of December, 2018")
print(type(date)) # <class 'datetime.datetime'>
print(date) # 2018-12-16 00:00:00date = parser.parse("2018-09-09")
print(type(date)) # <class 'datetime.datetime'>
print(date) # 2018-09-09 00:00:00date = parser.parse("2018-12-16 00:00:00")
print(type(date)) # <class 'datetime.datetime'>
print(date) # 2018-12-16 00:00:00对于"2018-12-16"还可以这样创建datetime.datetime
timestr = "2018-12-16"
date = datetime(year=int(timestr[:4]), month=int(timestr[5:7]), day=int(timestr[-2:])) 
print(type(date))  # <class 'datetime.datetime'>
print(date)        # 2018-12-16 00:00:00

将datetime.datetime转化为指定格式的时间字符串

date = datetime(year=2018, month=12, day=16) 
print(date.strftime('%A')) # Sunday
print(date.strftime('%Y-%m-%d')) # 2018-12-16
print(date.strftime('%Y#%m#%d')) # 2018#12#16
print(date.strftime('%Y-%m-%d %X')) # 2018-12-16 00:00:00

不同时间格式的含义

  • %a 本地简化星期几名称
  • %A 本地完整星期几名称
  • %b 本地简化月份名称
  • %B 本地完整月份名称
  • %c 本地相应的日期和时间表示
  • %H 一天中的第几个小时(00-23)
  • %d 一个月中第几天(01-31)
  • %I 第几个小时(12 小时制,01-12)
  • %j 一年中的第几天(001-366)
  • %M 分钟数(00-59)
  • %m 月份(01-12)
  • %S 秒(01-61)(闰年秒占两个)
  • %p 本地 am 或者 pm 的相应符,和%I 配合使用才用效果。
  • %U 一年中的星期数(00-53)。星期天是一个星期的开始,第一个星期天之前的所有天数都放在第 0 周。
  • %w 一个星期中的第几天(0-6,0 是星期天)
  • %W 和%U 基本相同,不同的是%W 以星期一为一个星期的开始。
  • %x 本地相应日期
  • %X 本地相应时间
  • %y 去掉世纪的年份(00-99)
  • %Y 完整的年份
  • %% ‘%’字符
  • %Z 时区的名字(如果不存在为空字符)


end

相关文章:

  • 网站关键词密度查询seox
  • 微商网站制作营销网络是什么意思
  • 做电子商务网站建设工资多少百度网址查询
  • 网站前端工资最新军事动态最新消息
  • 真人做的高清视频网站软件推广怎么做
  • 网站开发专员岗位职责网站推广方法有哪些
  • 基于事件驱动型LSTM模型的黄金周收益归因:贸易关税冲击下的5%涨幅量化解析
  • Linux:多线程---初识线程
  • Veeam Backup Replication Console 13 beta 备份 PVE
  • 深入解析Kafka核心参数:buffer_memory、linger_ms与batch_size的优化之道
  • 【基于SpringBoot的图书管理系统】Redis在图书管理系统中的应用:加载和添加图书到Redis,从数据同步到缓存优化
  • 在 Spring Boot 项目中如何合理使用懒加载?
  • Vue 2 混入 (Mixins) 的详细使用指南
  • Vue 3.0中复杂状态如何管理
  • 2025年Google I/O大会上,谷歌展示了一系列旨在提升开发效率与Web体验的全新功能
  • 基于PDF流式渲染的Word文档在线预览技术
  • Qt C++ GUI编程进阶:多窗口交互与事件机制深度解析
  • 基于AOD-Net与GAN的深度学习去雾算法开发
  • 基于机器学习的沪深300指数波动率预测:模型比较与实证分析
  • 【MySQL】分组查询、聚合查询、联合查询
  • Java基础(一):发展史、技术体系与JDK环境配置详解
  • 探索Linux互斥:线程安全与资源共享
  • 字节跳动2025年校招笔试手撕真题教程(三)
  • BGP笔记的基本概要
  • 从零实现智能封面生成器
  • 《数据密集型应用系统设计》笔记