博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
time、datatime模块
阅读量:7000 次
发布时间:2019-06-27

本文共 3782 字,大约阅读时间需要 12 分钟。

python中时间日期格式化符号

%Y  年份(4位数表示)%y  年份(2位数表示)%m  月份(01-12)%d  月内中的一天(0-31)%H  24小时制小时数%I  12小时制小时数%M  分钟数(00=59)%S  秒(00-59)%a  本地简化星期名称,如:星期三为Web%A  本地完整星期名称,如:星期三为Wednesday%b  本地简化星期名称,如:4月份为Apr%B  本地完整星期名称,如:4月份为April%c  本地相应的日期表示和时间表示,如:04/07/10 10:43:39%j  年内的一天(001-366)%p  AM或PM的等价符%U  一年中的星期数(00-53)星期天为星期的开始%W  一年中的星期数(00-53)星期一为星期的开始%w  今天在这周的天数(0-6)星期天为星期的开始%x  本地相应的日期表示,如:09/09/18%X  本地相应的时间表示,如:11:11:11%z  与utc时间的间隔(如果是本地时间,返回空字符串)%Z  时区名称(如果是本地时间,返回空字符串)%%  %号本身

一、time模块

#常用方法import timetime.sleep(secs)  #(线程)推迟指定的时间运行,单位为秒current_time = time.time()  # 获取当前时间戳print(current_time)

表示时间的三种方式:

  • timestamp(时间戳):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量;运行 type(time.time()),返回的是float类型
  • Format String(格式化的时间字符串):例如 2018-09-09
import timeprint(time.strftime("%Y-%m-%d %H:%M:%S"))  # 2018-09-09 20:27:11
  • struct_time(结构化时间,用元组表示):struct_time元组共有9个元素;年、月、日、时、分、秒、一年中第几周、一年中第几天、是否是夏令时

import time # 结构化时间(元组)print(time.localtime())# time.struct_time(tm_year=2018, tm_mon=9, tm_mday=9, tm_hour=20, tm_min=38, tm_sec=16, tm_wday=6, tm_yday=252, tm_isdst=0)

总结:

  • 时间戳是计算机能够识别的时间
  • 时间字符串是人能够看懂的时间
  • 结构化时间(元组)则是用来操作时间的

三种时间表示方式的转换:

时间戳 <--> 结构化时间

# 时间戳 --> 结构化时间# 格式:time.localtime(时间戳)print(time.localtime(8800000000))# time.struct_time(tm_year=2248, tm_mon=11, tm_mday=11, tm_hour=4, tm_min=26, tm_sec=40, tm_wday=5, tm_yday=316, tm_isdst=0)# 结构化时间 --> 时间戳# 格式:time.mktime(结构化时间)tuple_time = time.localtime(8800000000)print(time.mktime(tuple_time))# 8800000000.0

结构化时间 <--> 字符串时间

# 结构化时间 --> 字符串时间# 格式:time.strftime("字符串对应格式","结构化时间")  结构化时间参数若不传,则显示当前时间print(time.strftime("%Y-%m-%d", time.localtime(1000000000)))# 2001-09-09# 字符串时间  -->  结构化时间# 格式:time.strptime("时间字符串","字符串对应格式")print(time.strptime("2001-09-09", "%Y-%m-%d"))# time.struct_time(tm_year=2001, tm_mon=9, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=252, tm_isdst=-1) 

 

# 结构化时间  -->  %a %b %d %H:%M:%S %Y# 格式:time.asctime(结构化时间)  如果不传参数,直接返回当前时间的格式化字符串print(time.asctime(time.localtime(1000000000)))# Sun Sep  9 09:46:40 2001print(time.asctime(time.localtime()))# Sun Sep  9 20:58:28 2018# 时间戳  -->  %a %b %d %H:%M:%S %Y# 格式:time.ctime(时间戳)  如果不传参数,直接返回当前时间的格式化字符串print(time.ctime(1000000000))#Sun Sep  9 09:46:40 2001print(time.ctime())#Sun Sep  9 21:00:11 2018

二、datatime模块

import datetime

datetime模块中包含如下类

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

data类

d = datetime.date(2019, 2, 19)print(d)  # 2019-02-19print(d.year)print(d.month)print(d.day)d = datetime.date.today()print(d)  # 2019-02-19

time类

d = datetime.time(21, 36, 37)print(d)print(d.hour)print(d.minute)print(d.second)

datatime类

d = datetime.datetime(2019, 2, 19, 21, 36, 37)print(d)  # 2019-02-19 21:36:37d = datetime.datetime.today()  # datetime.datetime.now()print(d)  # 2019-02-19 21:36:37.709934

timedelta类

①获取上个月第一天和最后一天的日期

today = datetime.date.today()print(today)     # 2019-02-19last_day = datetime.date(today.year, today.month, 1) - datetime.timedelta(1)print(last_day)  # 2019-01-31first_day = datetime.date(last_day.year, last_day.month, 1)print(first_day) # 2019-01-01

②计算当前时间向后8个小时的时间

可以计算:天(days)、小时(hours)、分钟(minutes)、秒(seconds)、微秒(microseconds)

d = datetime.datetime.now()print(d)  # 2019-02-19 21:39:54.970777d = d + datetime.timedelta(hours=8)print(d)  # 2019-02-20 05:39:54.970777

③计算上周一和周日的日期

today = datetime.datetime.today()today_weekday = today.isoweekday()  # 返回weekday,星期一返回0,星期二返回1,以此类推last_sunday = today - datetime.timedelta(days=today_weekday)last_monday = last_sunday - datetime.timedelta(days=6)print(last_sunday.date())  # 2019-02-17print(last_monday.date())  # 2019-02-11

 

转载于:https://www.cnblogs.com/believepd/p/10403241.html

你可能感兴趣的文章
【python】字符串、16进制等数据处理
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
rhel5.5快速搭建本地yum源
查看>>
Zabbix触发器支持的函数说明
查看>>
19岁***克利里给西方网络安全敲响警钟
查看>>
Java邮箱验证
查看>>
@exceptionhandler 没有起作用,捕获不到异常
查看>>
DEDE在列表调用当前栏目的文章总数的修改方法
查看>>
ElasticSearch:版本冲突处理(事务控制)
查看>>
持续集成hudson入门
查看>>
Centos安装后配置
查看>>
kubernetes中证书生成
查看>>
JAVA学习笔记(5)
查看>>
初探SElinux
查看>>
elasticsearch之cluster模块
查看>>
dubbo源码分析系列(4)dubbo通信设计
查看>>
java报表中AIX字体丢失解决方案
查看>>
学习Perl 第2讲
查看>>
使用AJAX的最简单示例
查看>>