欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python_time和datetime模块

程序员文章站 2022-11-24 17:51:05
time和datatime模块 时间相关的操作,时间有三种表示方式: 时间戳 1970年1月1日之后的秒,即:time.time() 格式化的字符串 2019-1-1 12:12, 即:time.strftime('%Y-%m-%d') 结构化时间 元组包含了:年、日、星期等... time.str ......

 time和datatime模块

时间相关的操作,时间有三种表示方式:

  • 时间戳               1970年1月1日之后的秒,即:time.time()
  • 格式化的字符串    2019-1-1 12:12,    即:time.strftime('%y-%m-%d')
  • 结构化时间          元组包含了:年、日、星期等... time.struct_time    即:time.localtime()

 

datetime模块定义了下面这几个类:

  • datetime.date:表示日期的类。常用的属性有year, month, day;
  • datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
  • datetime.datetime:表示日期时间。
  • datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
  • datetime.tzinfo:与时区有关的相关信息。

 

 

元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素:

python_time和datetime模块

python中时间日期格式化符号:

%y 两位数的年份表示(00-99)
%y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%h 24小时制小时数(0-23)
%i 12小时制小时数(01-12)
%m 分钟数(00=59)
%s 秒(00-59)
%a 本地简化星期名称
%a 本地完整星期名称
%b 本地简化的月份名称
%b 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地a.m.或p.m.的等价符
%u 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%w 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%x 本地相应的时间表示
%z 当前时区的名称
%% %号本身

备注:

  1. “%p”只有与“%i”配合使用才有效果。

  2. 文档中强调确实是0 - 61,而不是59,闰年秒占两秒(汗一个)。

  3. 当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%u和%w才会被计算。

 

import time

print(time.time())  # 时间戳, 1970年1月1日之后的秒
print(time.strftime('%y-%m-%d %x %p'))  # 格式化的字符串

print(time.localtime())  # 本地时区 =上海时区
print(time.gmtime())  # utc时区

print(time.process_time())  # 测量处理器运算时间,不包括sleep时间

print(time.altzone)  # 返回与utc时间的时间差,以秒计算
print(time.asctime())  # 返回时间格式 mon jan 28 13:15:21 2019
print(time.ctime())
print(time.gmtime(time.time()-666666666))  # 返回utc时间的struc时间对象格式
print(time.strptime('2019-1-28', '%y-%m-%d'))  # 将 日期字符串 转成 struct时间对象格式
print(time.mktime())  # 将struct时间对象转成时间戳


import datetime

print(datetime.datetime.now())  # 返回 2016-08-19 12:47:03.941925
print(datetime.date.fromtimestamp(time.time()))  # 时间戳直接转成日期格式 2016-08-19
print(datetime.datetime.now())
print(datetime.datetime.now() + datetime.timedelta(3))  # 当前时间+3天
print(datetime.datetime.now() + datetime.timedelta(-3))  # 当前时间-3天
print(datetime.datetime.now() + datetime.timedelta(hours=3))  # 当前时间+3小时
print(datetime.datetime.now() + datetime.timedelta(minutes=30))  # 当前时间+30分

c_time = datetime.datetime.now()
print(c_time.replace(minute=3, hour=2))  # 时间替换