python时间日期处理
一、模块介绍:
1、time模块接近操作系统,模块中的大多数函数是调用了所在平台C library的同名函数,部分函数式平台相关的;基于Unix Timestamp,能表述的日期范围被限定在 1970 - 2038 之间。
2、datetime模块整合了time模块的部分功能和日期相关函数,提供datetime类,更易调用。但是,类似sleep的函数没有包含进去。
3、calendar模块提供了类似linux下强大的日历功能。
二、time模块
1、time.time() # 获取时间戳(float)
1453431849.94
int(1000 * time.time()) # 获取java中13位格式的时间戳
注:python 拿当前的时间戳 秒数和毫秒数,time的经度跟系统相关,windows小数点后3位,linux后面6位
2、time.ctime() # 时间戳=>时间字符串
Fri Jan 22 11:11:00 2016
3、time.gmtime() # 时间戳=>UTC时区时间序列
time.localtime() # 时间戳=>当前时区时间序列
4、time.asctime(time.gmtime(time.time())) #时间序列=>时间字符串
5、time.mktime()# 时间序列=>时间戳
6、格式化
dateFormateDay = "%Y%m%d" localTimeStr = time.strftime(dateFormateDay, time.localtime()) # time.struct_time => str localDate = time.strptime(localTimeStr, dateFormateDay) # str => time.struct_time
注:在datetime模块,还有一种类型的格式化,但是参数类型和返回类型都不一样,新学习的人容易混淆。
三、datetime模块
datetime模块包含的主要对象:
- timedelta # 主要用于计算时间跨度
- tzinfo # 时区相关
- time # 只关注时间
- date # 只关注日期
- datetime # 同时有时间和日期
1、datetime.datetime.now() # 获取当前时间,等同于datetime.datetime.today()
2016-01-22 11:26:38.562000
2、datetime.datetime.now() - datetime.timedelta(days = 1) # 获取昨天日期,相隔N天同理
注:datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]),参数最大单位到天
3、遍历一个日期区间
date1 = datetime.datetime(2015, 2, 15)
date2 = datetime.datetime(2015, 3, 12)
while date1 < date2:
date1 += datetime.timedelta(days=1)
4、格式化
ss = "07/Jan/2016:12:26:11"
# 转换为datetime.datetime类型
ss_time = datetime.datetime.strptime(ss, "%d/%b/%Y:%H:%M:%S")
ss_str = ss_time.strftime("%Y-%m-%d:%H:%M:%S")
5、遍历指定月份的日期
def rangeMonth(year, month):
firstDay = datetime.datetime(year, month, 1)
dateList = []
while firstDay.month == month:
dateList.append(firstDay)
firstDay += datetime.timedelta(days=1)
return dateList
四、calendar模块
暂时还木有发现此模块的妙用, 先放着 --!!
1、calendar.calendar(2016) # 返回一年日历,str类型
2、calendar.month(2016, 1) # 返回一月日历
3、calendar.monthcalendar(2016, 2) # 返回这个月的以周为单位的日序列
[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 0, 0, 0, 0, 0, 0]]
4、calendar.monthrange(2016, 2) # 返回某个月的weekday的第一天和这个月的所有天数
(0, 29) # 第一个参数不很理解,应该是和上面的函数一起使用
5、calendar.isleap(2016) # 判断是否闰年
五、格式化参数说明
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、http://www.jb51.net/article/75364.htm
2、http://www.cnblogs.com/hongten/archive/2013/08/07/hongten_python_calendar.html
python时间日期处理的更多相关文章
- python时间日期字符串各种
python时间日期字符串各种 第一种 字符串转换成各种日期 time 库 # -*- coding: utf-8 -*- import time, datetime # 字符类型的时间 tss1 = ...
- Python时间日期格式化之time与datetime模块总结
1 引言 在实际开发过程中,我们经常会用到日期或者时间,那么在Python中我们怎么获取时间,以及如何将时间转换为我们需要的格式呢?在之前的开发中,也曾遇到time.datetime等模块下的不同函数 ...
- Python时间日期格式化之time与datetime模块
1 引言 在实际开发过程中,我们经常会用到日期或者时间,那么在Python中我们怎么获取时间,以及如何将时间转换为我们需要的格式呢?在之前的开发中,也曾遇到time.datetime等模块下的不同函数 ...
- python时间日期格式化和反格式化
strftime()和strptime()行为 date,datetime和time对象都支持一种 strftime(format)方法,以创建一个表示显式格式字符串控制下的时间的字符串.从广义上讲, ...
- Python 时间 日期常见操作
import datetime,time dtstr = '2014-02-14 21:32:12' a = datetime.datetime.strptime(dtstr, "%Y-%m ...
- Python时间日期函数讲解
所有日期.时间的api都在datetime模块内. 1. 日期输出格式化 datetime => string import datetime now = datetime.datetime.n ...
- python 时间日期处理
refer to : http://www.wklken.me/posts/2015/03/03/python-base-datetime.html#datetime-string http://ww ...
- Python中对时间日期的处理方法简单汇总
这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime.获取当天date.获取明天/前N天.获取当天开始和结束时间(00:00:00 23:59:59).获取两个d ...
- python操作日期和时间的方法
不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法.1.将字符串的时间转换为时间戳 ...
随机推荐
- TCP和UDP的区别,以及它们对应的协议有哪些?
TCP(传输控制协议) 是面向连接的协议.在收发数据前,一个TCP连接必须要经过“三次握手”建立可靠的连接.握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据.理想状态下 ...
- BZOJ3926 诸神眷顾的幻想乡
传送门 树上SAM! 显然如果树上一条一条字符串放的话那么是n^2的w 但是 题目的性质非常吼啊! 20个叶子节点 我们就可以 把所有叶子结点拎出来当根 全部扔到一个SAM里 就吼啦 最后的答案是 ...
- 明明不太合适但是还是被用在配置文件和数据传输上的XML
XML概述: 概念: 可扩展的标记语言. 功能: 作为数据本地存储的格式.(已淘汰)作为结构化存储的方式,不如数据库效率高.目前一部分移动设备中还在使用. 作为网络中传输数据的格式.(已淘汰)作为网络 ...
- js append()和appendChild()和insertBefore()的区别
<body> <input type="button" value="删除" id="btn"> <scrip ...
- 【Eureka】实现原理
Eureka Client 拉取Eureka Server中的全量注册表 注册自身实例InstanceInfo至Eureka Server 初始化定时任务 心跳(续约)任务 拉取增量注册表更新本地注册 ...
- flutter中的命名路由
命名路由是区别于基本路由的一种存在,方便于大型项目中路由的统一管理,现在,在前面基本路由的项目基础上实现实现命名路由. 使用步骤 路由配置 命名路由在使用前,需要在根组件main.dart中进行简单的 ...
- 使用SSH 工具 Xshell 6连接CentOS 7.4
在使用Xshell 6连接 服务CentOS 7.4之前,首先你要配置好服务器,如果没有配置好服务器的,请访问: (一)小白教小白配置 服务器 好了,开始正文! 首先准备,SSH 工具 Xshell ...
- react教程 — 组件的生命周期 和 执行顺序
一.组件执行的生命周期: 参考 https://www.cnblogs.com/soyxiaobi/p/9559117.html 或 https://www.c ...
- [CSP-S模拟测试]:Lost My Music(凸包)
题目描述 小$w$在天堂看到了一棵世界树.世界树上有$n$个节点,其中$1$节点为根,每个节点有一个正整数权值$c_i$.现在小$w$想要对每个节点$u$求出它的祖先$v$中$\frac{c_v-c_ ...
- vue仿追书神器,vue小说项目源码
vue-reader 一点阅读器!API源自追书神器,免费使用!目前已初步开发完成! Github项目地址:https://github.com/AntonySufer/vue-readle 欢迎is ...