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 个元素,按顺序排列如下表:
python 中关于时间的处理,时间戳,结构化时间,字符串之间的转换_第1张图片
既然结构化时间是一个元组,那么就可以通过索引进行取值,也可以进行分片,或者通过属性名获取对应的值。
2

python 中关于时间的处理,时间戳,结构化时间,字符串之间的转换_第2张图片
3.

python 中关于时间的处理,时间戳,结构化时间,字符串之间的转换_第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”)

你可能感兴趣的:(python,开发语言)