python 中关于时间的处理,时间戳,结构化时间,字符串之间的转换

一.时间模块
在Python中,与时间处理有关的模块就包括:time,datetime 以及 calendar三个。

time 模块是最基本的模块,蕴含多种基础功能;datetime模块是在time模块的基础上进行封装的,功能比较强大,可以进行多种运算,例如计算时间差;calendar日历模块主要是用于处理日历及星期相关操作。

二.时间的三种形式
在Python中,通常有这几种方式来表示时间:

1.时间戳 timestamp; (计算机去读取)
例子:1677850440.0

2.格式化的时间字符串(str); (程序员使用)
例子:Mon Mar 6 11:49:06 2023

3.元组(struct_time,共九个元素)。 (普通人使用的)
例子:time.struct_time(tm_year=2023, tm_mon=3, tm_mday=6, tm_hour=11, tm_min=49, tm_sec=6, tm_wday=0, tm_yday=65, tm_isdst=0)

三.各部分的介绍

  1. 时间戳( timestamp ):也就是 1970 年 1 月 1 日之后的秒,例如 1506388236.216345,可以通过 time.time() 获得。时间戳是一个浮点数,可以进行加减运算,但请注意不要让结果超出取值范围。
  2. 格式化的时间字符串( string_time ):也就是年月日时分秒这样的我们常见的时间字符串,例如 2017-09-26 09:12:48 ,可以通过 time.strftime(‘%Y-%m-%d’) 获得;
  3. 结构化时间( struct_time ):一个包含了年月日时分秒的多元元组,例如
    time.struct_time(tm_year=2017, tm_mon=9, tm_mday=26, tm_hour=9, tm_min=14,tm_sec=50, tm_wday=1, tm_yday=269, tm_isdst=0) ,可以通过 time.localtime() 获得。

四.代码部分
import time

“”“时间戳转结构化时间”“”
now_time = time.time() 获取当前的时间格式为时间戳模式
struct_time = time.localtime(now_time) # time.localtime(时间戳转为结构化时间)
print(‘时间戳转结构化时间:’, struct_time)

“”“结构化时间转字符串”“”
str_time = time.strftime(“%Y-%m-%d %H:%M:%S”, struct_time)
print(str_time)

“”“字符串时间转结构化时间”“”
str_time = ‘2023-03-03 21:34:00’
struct_time = time.strptime(str_time, “%Y-%m-%d %H:%M:%S”)
print(struct_time)

“”“结构化时间转时间戳”“”
print(time.mktime(struct_time))

五。拓展知识

1.结构化时间元组共有 9 个元素,按顺序排列如下表:
在这里插入图片描述
既然结构化时间是一个元组,那么就可以通过索引进行取值,也可以进行分片,或者通过属性名获取对应的值。
2

在这里插入图片描述
3.

在这里插入图片描述

4.date提供的实例方法和属性:

  1. date.year、date.month、date.day:年、月、日;
  2. date.replace(year, month, day):生成一个新的日期对象,用参数指定的年,月,日代替原有对
    象中的属性。(原有对象仍保持不变)
  3. date.timetuple():返回日期对应的time.struct_time对象;
  4. date.toordinal():返回日期对应的Gregorian Calendar日期;
  5. date.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
  6. data.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
  7. date.isocalendar():返回格式如(year,month,day)的元组;
  8. date.isoformat():返回格式如’YYYY-MM-DD’的字符串;
  9. date.strftime(fmt):自定义格式化字符串。

六.总结

对于我们程序员来说,只会用到字符串和结构化时间,所以掌握好他们之间的相互转换就可以了。即time.strftime()和time.strptime()

“”“结构化时间转字符串”“”
str_time = time.strftime(“%Y-%m-%d %H:%M:%S”, struct_time)

“”“字符串时间转结构化时间”“”
str_time = ‘2023-03-03 21:34:00’
struct_time = time.strptime(str_time, “%Y-%m-%d %H:%M:%S”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想做程序猿的员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值