python(4)-- 日期 & 时间
1. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
2. 时间间隔是以秒为单位的浮点小数。
3. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
4. Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, eg:
#!/usr/bin/python # -*- coding: UTF- -*- import time; # 引入time模块 ticks = time.time() print "当前时间戳为:", ticks 以上实例输出结果: 当前时间戳为: 1459994552.51
5. 时间元组(struct_time元组),属性:
6. 实用:时间格式<-->时间戳
(1)获取当前时间--只要将浮点数传递给 localtime 之类的函数,即从返回浮点数的时间辍方式转成 时间元组,eg:
获取本地时间(时间元组格式):localtime = time.localtime(time.time()) ---
结果: time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)
(2)获取格式化的时间:你可以根据需求选取各种格式。
(3)格式化/转换日期:我们可以使用 time 模块的 strftime 方法来格式化日期:time.strftime(format[, t]),eg:
#!/usr/bin/python # -*- coding: UTF- -*- # 格式化 eg1:格式化成 2016-04-07 10:25:09
eg2: import time a = "2013-10-10 23:40:00" print int(time.mktime(time.strptime(a,# 将 时间戳 转换为 指定格式日期:
eg1: import time timeStamp = 1381419600 print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timeStamp)) # 结果:"2013-10-10 23:40:00"eg2: import datetime timeStamp = 1381419600 dateArray = datetime.datetime.utcfromtimestamp(timeStamp) print dateArray.strftime("%Y-%m-%d %H:%M:%S") # 结果:"2013-10-10 23:40:00" # 字符串格式更改:如 a =
"2013-10-10 23:40:00"
, 想改为 a =
"2013/10/10 23:40:00"
eg: import time a ="2013-10-10 23:40:00" print time.strftime("%Y/%m/%d %H:%M:%S", time.strptime(a, "%Y-%m-%d %H:%M:%S")); # 结果:"2013/10/10 23:40:00" # 获取 当前时间 并转换为 指定日期格式:eg1: import time now = int(time.time()) # 获得当前时间时间戳 timeArray = time.localtime(now) print time.strftime("%Y-%m-%d %H:%M:%S", timeArray) # 结果:"2013-10-10 23:40:00"
eg2: import datetime now = datetime.datetime.now() # 获得时间数组格式 print now.strftime("%Y/%m/%d %H:%M:%S") # 结果:"2013/10/10 23:40:00" # 获取 3天前的时间:datetime.timedelta([days, hours, seconds, microseconds = ..])eg:import time import datetime threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3)) # 线获得时间数组格式的日期 # timeStamp = int(time.mktime(threeDayAgo.timetuple())) # 转换为时间戳 print threeDayAgo.strftime("%Y-%m-%d %H:%M:%S") # 结果:"2013-10-10 23:40:00" # 注:timedelta()的参数有:days,hours,seconds,microseconds # 给定时间戳,计算该时间的几天前时间:eg:timeStamp = 1381419600 import datetime import time dateArray = datetime.datetime.utcfromtimestamp(timeStamp) print (dateArray - datetime.timedelta(days = 3)) # 结果:"2013-10-07 15:40:00"
此外:python中时间日期格式化符号:
%y 两位数的年份表示(-) %Y 四位数的年份表示(-) %m 月份(-) %d 月内中的一天(-) %H 24小时制小时数(-) %I 12小时制小时数(-) %M 分钟数(=) %S 秒(-) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(-) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(-)星期天为星期的开始 %w 星期(-),星期天为星期的开始 %W 一年中的星期数(-)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身
(4) 获取某月日历:Calendar 模块有很广泛的方法用来处理年历和月历,eg:打印某月的月历
#!/usr/bin/python # -*- coding: UTF- -*- import calendar cal = calendar.month(, ) print "以下输出2016年1月份的日历:" print cal; 以上实例输出结果: 以下输出2016年1月份的日历: January Mo Tu We Th Fr Sa Su
7 Time 模块/日历(Calender)模块
7.1 Time 模块:包含了以下内置函数,既有时间处理相的,也有转换时间格式的:
7.2 日历(Calender)模块:此模块的函数都是日历相关的,例如打印某月的字符月历。
星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:
其他相关模块和函数
在Python中,其他处理日期和时间的模块还有:
最新文章
- spring-boot启动信息中non-fatal error
- css之z-index
- Spring配置bean文件的底层实现方式
- android开发常见编程错误总结
- smarty中foreach的用法举例
- winserver 2008 r2 iis7.5 实现php wordpress url静态化操作步骤(UrlRewrite实现)
- sql server 查找字段上的约束
- codeforces 15D . Map 优先队列
- vuejs模板使用方法
- PHP初入,基础知识点分享(a标签&;表格的嵌套&;文字的处理)
- 201521123113《Java程序设计》第11周学习总结
- Mac里安装Jmeter
- Java核心技术及面试指南 多线程并发部分的面试题总结以及答案
- 浅谈js中的this关键字
- React之ref
- json,pickle,shelve模块,xml处理模块
- UOJ#33. 【UR #2】树上GCD 点分治 莫比乌斯反演
- UVa 548 Tree(二叉树最短路径)
- [转载]ArcGIS SERVER 9.3如何清除REST缓存
- linux AB web 性能测试工具
热门文章
- 《javascript 学习笔记》
- mysql查看版本,编码
- java基础面试题:switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
- 解决使用Application Loader上传ipa提示“上传appstore失败”
- node基础
- FTP、SFTP与FTPS
- python实现批量修改文件名
- git bash 学习2 --更改url 重置密钥 Permission denied (publickey)问题
- 神经网络系列学习笔记(二)——神经网络之DNN学习笔记
- Vue -computed传参数