Python模块--time&datetime
一、Python中时间的表示方式
1、时间戳 如 1552623413.043036
2、格式化的时间字符串 如 2015-12-02
3、struct_time 是一个元组 共有九个元素
二、关于时间的几个定义
1、UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。
2、DST(Daylight Saving Time)即夏令时
3、时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。time.time(),返回当前时间的时间戳,是一个float类型。
4、元组(struct_time):返回struct_time的函数主要有gmtime(),localtime(),strptime()。struct_time元组9个元素:
索引(Index) 属性(Attribute) 值(Values)
0 tm_year(年) 比如2011
1 tm_mon(月) 1 - 12
2 tm_mday(日) 1 - 31
3 tm_hour(时) 0 - 23
4 tm_min(分) 0 - 59
5 tm_sec(秒) 0 - 61
6 tm_wday(weekday) 0 - 6(0表示周日)
7 tm_yday(一年中的第几天) 1 - 366
8 tm_isdst(是否是夏令时) 默认为-1
例:
import time print(time.localtime())
print(time.localtime().tm_yday) # 查看今天是一年中的第几天 或 time.localtime()[7] # 结果:
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=15, tm_hour=22, tm_min=24, tm_sec=58, tm_wday=4, tm_yday=74, tm_isdst=0)
74
三、time模块
import time
1、time.localtime([secs]):将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准。
import time print(time.localtime(345678234))
# time.struct_time(tm_year=1980, tm_mon=12, tm_mday=15, tm_hour=5, tm_min=43, tm_sec=54, tm_wday=0, tm_yday=350, tm_isdst=0)
print(time.localtime())
# time.struct_time(tm_year=2019, tm_mon=3, tm_mday=15, tm_hour=22, tm_min=31, tm_sec=50, tm_wday=4, tm_yday=74, tm_isdst=0)
2、time.gmtime([secs]):和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。
import time print(time.gmtime(345678234))
# time.struct_time(tm_year=1980, tm_mon=12, tm_mday=14, tm_hour=21, tm_min=43, tm_sec=54, tm_wday=6, tm_yday=349, tm_isdst=0)
print(time.gmtime())
# time.struct_time(tm_year=2019, tm_mon=3, tm_mday=15, tm_hour=14, tm_min=34, tm_sec=55, tm_wday=4, tm_yday=74, tm_isdst=0)
3、time.time():返回当前时间的时间戳。
4、time.mktime(t):将一个struct_time转化为时间戳。
import time print(time.mktime(time.localtime())) # 1552660909.0
5、time.sleep(secs):线程推迟指定的时间运行。单位为秒。
6、time.asctime([t]):把一个表示时间的元组或者struct_time表示为这种形式:'Sun Oct 1 12:04:38 2017'。如果没有参数,将会将time.localtime()作为参数传入。
import time print(time.asctime()) # Fri Mar 15 22:45:22 2019
7、time.ctime([secs]):把一个时间戳转化为'Sun Oct 1 12:04:38 2017'的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
import time print(time.ctime(3738383884)) # Fri Jun 18 15:58:04 2088
print(time.ctime()) # 没有参数的话就默认将time.time()当做参数传入 Fri Mar 15 22:48:09 2019
8、time.strftime(format[, t]):把一个代表时间的元组或者struct_time( 如time.localtime()和time.gmtime() )转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。
import time
print(time.strftime("%Y-%m-%d %X", time.localtime())) # 2019-03-15 22:52:11
9、time.strptime(string[, format]):把一个格式化时间字符串转化为struct_time,与strftime()是逆操作。
import time
print(time.strptime("2017-01-01", "%Y-%m-%d"))
# time.struct_time(tm_year=2017, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=1, tm_isdst=-1)
10、字符串格式对应表
%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 当前时区的名称
%% %号本身
11、时间格式转换关系

四、datetime模块
1、datetime.date:表示日期的类。常用的属性有year, month, day;
import datetime print(datetime.date(2012, 3, 4).year) #
print(datetime.date(2012, 3, 4).month) #
print(datetime.date(2012, 3, 4).day) #
2、datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
import datetime print(datetime.time(22, 34, 56).hour) # 22时
print(datetime.time(22, 34, 56).minute) # 34分
print(datetime.time(22, 34, 56).second) # 56秒
print(datetime.time(22, 34, 56, 23).microsecond) # 23微秒
3、datetime.datetime:表示日期时间。
import datetime print(datetime.datetime(2018, 2, 23, 22, 34, 56).year) # 2018年
print(datetime.datetime(2018, 2, 23, 22, 34, 56).month) # 2月
print(datetime.datetime(2018, 2, 23, 22, 34, 56).day) # 23日
print(datetime.datetime(2018, 2, 23, 22, 34, 56).hour) # 22时
print(datetime.datetime(2018, 2, 23, 22, 34, 56).minute) # 34分
print(datetime.datetime(2018, 2, 23, 22, 34, 56).second) # 56秒
print(datetime.datetime(2018, 2, 23, 22, 34, 56, 23).microsecond) # 23微秒
4、datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
import datetime print(datetime.datetime(2017, 10, 1, 12, 53, 11, 821218)) # 2017-10-01 12:53:11.821218 print(datetime.datetime.now() + datetime.timedelta(4)) # 当前时间+4天 2019-03-19 23:58:23.998880 print(datetime.datetime.now() + datetime.timedelta(hours=4)) # 当前时间+4小时
5、datetime.tzinfo:与时区有关的相关信息。
6、相关示例
import datetime d = datetime.datetime.now() # 返回当前的datetime日期类型
print(d) # 2019-03-15 23:52:06.701376
print(d.timestamp()) # 1552665126.701376
print(d.today()) # 2019-03-15 23:52:06.701459
print(d.year) #
print(d.timetuple()) # time.struct_time(tm_year=2019, tm_mon=3, tm_mday=15, tm_hour=23, tm_min=52, tm_sec=6, tm_wday=4, tm_yday=74, tm_isdst=-1) time1 = datetime.datetime(2016, 12, 20)
time2 = datetime.datetime(2016, 11, 2)
print((time1-time2).days) # 计算天数差值
import datetime d = datetime.date.fromtimestamp(544788566) # 把一个时间戳转为datetime日期类型
print(d) print(datetime.date.today().replace(year=2018, month=4, day=1)) # 替换日期 2018-04-01
Python模块--time&datetime的更多相关文章
- Python模块学习 ---- datetime
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致.相比于time模块, ...
- python模块之datetime
相比于time模块,datetime模块的接口则更直观.更容易调用 datetime模块定义了下面这几个类: datetime.date:表示日期的类.常用的属性有year, month, day: ...
- python模块time&datetime&json & picle&14.logging等
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
- Python模块 - time,datetime,calendar
time模块 localtime 当前时间的struct_time形式 >>> time.localtime() time.struct_time(tm_year=2015, tm_ ...
- python模块之datetime方法详细介绍
datetime Python提供了许多内置模块用于操作时间日期,如calendar,time,datetime,这篇文章主要是对datetime进行汇总,datetime模块的借口实现原则更加直观, ...
- 【转载】【Python模块】datetime
原文地址 一.datetime模块介绍 (一).datetime模块中包含如下类: 类名 功能说明 date 日期对象,常用的属性有year, month, day time 时间对象 datetim ...
- python模块:datetime
# Stubs for datetime # NOTE: These are incomplete! import sys from typing import Optional, SupportsA ...
- python模块--time & datetime
time模块 #获取当前时间的时间戳 import time >>> time.time() 1535004894.0959966 #日期字符串转化成时间戳 >>> ...
- python模块之time和datetime
33.python模块之time 1.>>> time.time() 1470900847.8458395 ==>时间戳,从1970年到现在. 2.> ...
随机推荐
- 转 怎样解读10046 trace (tkprof 的结果 )
set autot on SQL> set autotraceUsage: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ ...
- 原生ajax提交php后台接收不到问题
var xmlHttp; if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); ...
- node.js之Windows 系统下设置Nodejs NPM全局路径
node.js 0.10 版本下修改全局路径: npm config set cache "D:\nodejs\node_cache" npm config set prefix ...
- CSS布局之-高度自适应
何为高度自适应? 高度自适应就是高度能跟随浏览器窗口的大小改变而改变,典型的运用在一些后台界面中上面一栏高度固定用作菜单栏或导航栏,下面一栏高度自适应用于显示内容.高度自适应不像宽度自适应那样简单,在 ...
- sqlserver 视图用 case when
视图用 case when 需要 用如下格式,[需要的列名]= case when...,而表里面的case 不用这样 [isNormal]=CASE WHENdbo.c_bdm_head.I_E_F ...
- codevs 1277 生活大爆炸 2012年CCC加拿大高中生信息学奥赛
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description Sheldon and Leonard are physicists wh ...
- openstack安装dashboard后访问horizon出错 End of script output before headers: django.wsgi
在配置文件中增加如下的一句解决问题 /etc/apache2/conf-available/openstack-dashboard.conf WSGIApplicationGroup %{GLOBAL ...
- UVA - 658 It's not a Bug, it's a Feature! (隐式图的最短路,位运算)
隐式的图搜索,存不下边,所以只有枚举转移就行了,因为bug的存在状态可以用二进制表示,转移的时候判断合法可以用位运算优化, 二进制pre[i][0]表示可以出现的bug,那么u&pre[i][ ...
- Codeforces Gym 100650B Countdown (离线)
题目链接:http://codeforces.com/gym/100650 根据给出的树和d,求出一些结点,这些结点形成子树的第d层结点数应该尽量多,具体要求可以参考题目. dfs一个结点前保存询问深 ...
- Maven归纳
一.常用功能 1.Maven的中央仓库 https://mvnrepository.com/ 2.添加jar包依赖 1.首先点击pom.xml,然后点击弹出页面中的Dependencies选项,接 ...