2020-04-11 python对时间日期的处理

一、time

对于Unix平台,初始时间是1970,01,01,00:00:00(UTC)

0.time.gmtime(0)

获取平台初始时间

>>> time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

1.时间类型的格式

struct_time类型

它是一个具有命名元组接口的对象:可以通过索引和属性名访问值。存在以下值:

  • index---attribute---values
  • 0---tm_year---年份
  • 1---tm_mon---月份range[1,12]
  • 2---tm_mday---天数range[1,31]
  • 3---tm_hour---小时range[0,23]
  • 4---tm_min---分钟range[0,59]
  • 5---tm_sec---秒数range[0,61]
  • 6---tm_wday---星期range[0,6],0是星期日
  • 7---tm_yday---一年中的一天range[1,366]
  • 8---tm_isdst---tm_isdst可以在夏令时生效时设置为1,而在夏令时不生效时设置为0。值-1表示这是未知的。
  • N/A---tm_zone---时区名称的缩写
  • N/A---tm_gmtoff---协调世界时以东偏移,以秒为单位.

例如,time.struct_time(tm_year=2019, tm_mon=3, tm_mday=20, tm_hour=23, tm_min=11, tm_sec=33, tm_wday=2, tm_yday=79, tm_isdst=0)

这里借大神的图一用 https://www.cnblogs.com/pal-duan/p/10568829.html

2.time.time()

返回当前时间戳

>>> import time
>>> timestamp=time.time()
>>> timestamp
1586613888.3396423

这个输出是非人类理解的时间戳,常用于计算程序运行时间

3.time.sleep()

用于让程序休眠一小段时间

import time
start_time=time.time()
time.sleep(5)
end_time=time.time()
print(end_time-start_time)

输出 :5.000166654586792(大概值)

4.time.asctime([time])

格式化时间类型

>>> time.asctime()
'Sun Apr 12 00:02:37 2020'

参数time : struct_time类型或tuple类型的时间,不填参数的话默认为time.localtime()得到的时间。

 5.time.ctime([secs])

将时间戳的时间转换为表示本地时间的字符串。

>>> time.ctime()
'Sun Apr 12 00:42:20 2020'

参数secs : 时间戳,如果没有提供secs,则默认使用当前的时间戳,返回的当前时间。

6.time.gmtime([sec])
将时间戳类型的时间转换为UTC中的struct_time,其中dst标志始终为零。

>>> timestamp
1586613888.3396423
>>> time.localtime(timestamp)
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=11, tm_hour=22, tm_min=4, tm_sec=48, tm_wday=5, tm_yday=102, tm_isdst=0)

参数sec:时间戳类型的时间,如果没有提供secs或没有提供secs,则使用time()返回的当前时间。
返回值:struct_time类型的时间

time.localtime([sec])
作用:就像time.gmtime(),但是转换为本地时间。当dst应用于给定的时间时,dst标志被设置为1。
参数:时间戳类型的时间,如果没有提供secs或没有提供secs,则使用time()返回的当前时间。
返回值:struct_time类型的时间

time.mktime(t)
作用:将struct_time类型的时间转换为时间戳类型。
参数:struct_time类型的时间。
返回值:时间戳类型。

time.monotonic()-->float
作用:返回一个单调时钟的值(以分数秒为单位),即一个不能倒退的时钟。时钟不受系统时钟更新的影响。返回值的引用点是未定义的,因此只有连续调用的结果之间的差异是有效的。

time.monotonic_ns()-->int
作用:和time.monotonic()类似,但返回值为纳秒。

time.perf_counter()-->float
作用:返回性能计数器的值(以小数秒为单位),即具有最高可用分辨率来测量短时间的时钟。它确实包括在睡眠期间所花费的时间,并且是全系统的。返回值的引用点是未定义的,因此只有连续调用的结果之间的差异是有效的。

time.perf_counter_ns()-->int
作用:和time.perf_counter()类似,但返回值为纳秒。

time.process_time()-->float
作用:返回当前进程的系统和用户CPU时间之和(以小数秒为单位)。它不包括睡眠时间。根据定义,它是过程范围的。返回值的引用点是未定义的,因此只有连续调用的结果之间的差异是有效的。

time.process_time_ns()-->int
作用:和time.process_time()类似,但返回值为纳秒。

time.sleep(secs)
作用:在给定的秒数内挂起调用线程的执行。
参数:秒数,参数可以是一个浮点数,表示更精确的睡眠时间。

time.strftime(format[,t])
作用:将struct_time类型的时间转换为format参数指定格式的字符串。
参数:

  • format:指定转换时间的字符串格式。
  • t:struct_time类型的时间,如果不填默认为当前时间(即time.localtime()返回的时间)

返回值:指定格式的字符串。
注:
以下指令可以嵌入格式字符串中。它们显示时没有可选的字段宽度和精度规范。

  • %a-->星期的缩写
  • %A-->完整的星期的名称
  • %b-->月份的缩写
  • %B-->完整的月份名称
  • %c-->'Wed Mar 20 21:40:19 2019'格式
  • %d-->十进制数格式的日期[01,31]
  • %H-->小时(24小时制) 十进制数[00,23]
  • %I-->小时(12小时制) 十进制数[01,12]
  • %j-->一年中的一天(十进制数)[001,366]
  • %m-->月份(十进制数)[01,12]
  • %M-->分钟数(十进制数)[00,59]
  • %p-->AM或PM
  • %S-->秒数[00,59]
  • %U-->一年中的周数(星期日作为一周的第一天)十进制数[00,53],第一个星期日之前的所有日子被认为是第0周。
  • %w-->星期数(十进制数)[0,6]
  • %W-->一年中的周数(星期一作为一周的第一天)十进制数[00,53],第一个星期一之前的所有日子被认为是第0周。
  • %x-->日期表示(月/日/不带世纪的年份)例如'03/20/19'
  • %X-->时间表示(时:分:秒)例如'21:56:34'
  • %y-->不带世纪的年份(十进制数)[00,99]
  • %Y-->带世纪的年份(十进制数)
  • %z-->时区偏移指示与格式+ HHMM或-HHMM形式的UTC / GMT的正或负时差,其中H表示十进制小时数字,M表示小数分钟数字[-23:59,+ 23:59]。
  • %Z-->时区名称,例如'中国标准时间'
  • %%-->'%'字符。

time.strptime(string[,format])
作用:根据格式解析表示时间的字符串。
参数:

  • string:字符串类型的时间。
  • format:提供字符串类型的时间的格式。

返回值:struct_time类型的时间。
注:ormat参数使用的指令与strftime()使用的指令相同;它默认为“%a %b %d %H:%M:%S %Y”,与ctime()返回的格式匹配。如果字符串不能按照格式进行解析,或者解析后有多余的数据,则会引发ValueError。当无法推断出更精确的值时,用于填充任何缺失数据的默认值是(1900、1、1、0、0、0、0、0、1、-1)。字符串和格式都必须是字符串。

time.time()-->float
作用:以秒为单位以浮点数返回历元之后的时间。

time.thread_time()-->float
作用:返回当前线程的系统和用户CPU时间之和(以小数秒为单位)。它不包括睡眠时间。它的定义是特定于线程的。返回值的引用点未定义,因此只有同一线程中连续调用的结果之间的差异是有效的。

time.thread_time_ns()-->int
作用:和time.thread_time()类似,但是返回值是纳秒。

time.time_ns()-->int
作用:和time.time()类似,但返回值是纳秒。

二、datetime

1.

>>> import datetime
>>> dt = datetime.datetime.now()
>>> print(dt)
2020-04-11 22:50:22.758587

2.其他属性
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)

三、二者配合使用

原文地址:https://www.cnblogs.com/cxl-blog/p/12683181.html