Python学习--15 日期和时间
方法预览:
datetime.now() # 当前时间,datetime类型
datetime.timestamp() # 时间戳,浮点类型
datetime.strftime('%Y-%m-%d %H:%M:%S') # 格式化日期对象datetime,字符串类型
datetime.strptime('2017-2-6 23:22:13', '%Y-%m-%d %H:%M:%S') # 字符串转日期对象
datetime.fromtimestamp(ts) # 获取本地时间,datetime类型
datetime.utcfromtimestamp(ts) # 获取UTC时间,datetime类型
获取当前时间
# coding: utf-8
from datetime import datetime
now = datetime.now()
print(now)
print(now.strftime('%Y-%m-%d %H:%M:%S'))
print(type(now))
输出:
2017-02-06 23:18:29.624698
2017-02-06 23:18:29
<class 'datetime.datetime'>
strftime()用于格式化日期对象datetime。另外一个方法strptime()则负责把一个字符串str转为datetime对象:
from datetime import datetime
# 注意时间字符串与格式化字符串位置一一对应,否则报错
odate = datetime.strptime('2017-2-6 23:22:13', '%Y-%m-%d %H:%M:%S')
print(odate)
print(type(odate))
输出:
2017-02-06 23:22:13
<class 'datetime.datetime'>
获取时间戳
# coding: utf-8
from datetime import datetime
import time
now = datetime.now()
print(now)
# datetime模块提供
print(now.timestamp())
# time模块提供
print(time.time())
输出:
2017-02-06 23:26:54.631582
1486394814.631582
1486394814.631582
小数位表示毫秒数。
自定义时间转换为时间戳:
from datetime import datetime
# 方式1:
odate = datetime.strptime('2017-2-6 23:29:20', '%Y-%m-%d %H:%M:%S')
print(odate.timestamp())
# 方式2:
odate = datetime(2017, 2, 6, 23, 29, 20)
print(odate.timestamp())
输出:
1486394960.0
1486394960.0
注意:timestamp的值是与时区无关的。datetime是有时区的。
下面演示如何把timestamp转换为datetime。
时间戳转日期:
# coding: utf-8
from datetime import datetime
now = datetime.now()
ts = now.timestamp()
print(datetime.fromtimestamp(ts)) # 本地时间
print(datetime.utcfromtimestamp(ts)) # UTC时间
输出:
2017-02-06 23:38:05.213937
2017-02-06 15:38:05.213937
datetime加减
可以直接导入timedelta类实现日期加减:
# coding: utf-8
from datetime import datetime, timedelta
import time
now = datetime.now()
# now += timedelta(hours=10)
# now += timedelta(minutes=10)
# now += timedelta(weeks=1)
now += timedelta(days=-1, hours=1, minutes=1, seconds=10)
print(now)
输出:
2017-02-06 00:47:12.395231
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 当前时区的名称
%% %号本身
time模块
下面示例演示time模块里的常用方法:
# coding:utf-8
import time
# 获取时间戳
timestamp = time.time()
print(timestamp)
# 格式时间
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
# 返回当地时间下的时间元组t
print(time.localtime())
# 将时间元组转换为时间戳
print(time.mktime(time.localtime()))
t = (2017, 2, 11, 15, 3, 38, 1, 48, 0)
print(time.mktime(t))
# 字符串转时间元组:注意时间字符串与格式化字符串位置一一对应
print(time.strptime('2017 02 11', '%Y %m %d'))
# 睡眠
print('sleeping...')
time.sleep(2) # 睡眠2s
print('sleeping end.')
输出:
1486797515.78742
2017-02-11 15:18:35
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=11, tm_hour=15, tm_min=18, tm_sec=35, tm_wday=5, tm_yday=42, tm_isdst=0)
1486797515.0
1486796618.0
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=11, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=42, tm_isdst=-1)
sleeping...
sleeping end.
时间元组
下面是Python时间元组:
| 序号 | 属性 | 值 |
|--|--|
| 0 | tm_year | 2008 |
| 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 (60或61 是闰秒) |
| 6 | tm_wday | 0到6 (0是周一) |
| 7 | tm_yday | 1 到 366(儒略历) |
| 8 | tm_isdst | -1, 0, 1, -1是决定是否为夏令时的旗帜 |
time模块内置函数
Time 模块包含了以下内置函数,既有时间处理相的,也有转换时间格式的:
| 序号 | 函数 | 描述 |
|---|---|---|
| 1 | time.altzone | 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。 |
| 2 | time.asctime([tupletime]) | 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。 |
| 3 | time.clock( ) | 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。 |
| 4 | time.ctime([secs]) | 作用相当于asctime(localtime(secs)),未给参数相当于asctime() |
| 5 | time.gmtime([secs]) | 接收时间辍(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0 |
| 6 | time.localtime([secs]) | 接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。 |
| 7 | time.mktime(tupletime) | 接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。 |
| 8 | time.sleep(secs) | 推迟调用线程的运行,secs指秒数。 |
| 9 | time.strftime(fmt[,tupletime]) | 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。 |
| 10 | time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') | 根据fmt的格式把一个时间字符串解析为时间元组。 |
| 11 | time.time( ) | 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。 |
| 12 | time.tzset() | 根据环境变量TZ重新初始化时间相关设置。 |
Python学习--15 日期和时间的更多相关文章
- Python中的日期和时间
感觉C语言作为一门编程的入门语言还是很好的,相比较之下,Python为代表的一些语言,适合很多非计算机专业的编程入门学习. Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换 ...
- python: 基本的日期与时间转换
需要执行简单的时间转换,比如天到秒,小时到分钟等的转换. 为了执行不同时间单位的转换和计算,请使用datetime 模块.比如,为了表示一个时间段,可以创建一个timedelta 实例,就像下面这样: ...
- SQLServer学习笔记<>日期和时间数据的处理(cast转化格式、日期截取、日期的加减)和 case表达式
日期和时间数据的处理. (1)字符串日期 ‘20080301’,这一串为字符串日期,但必须保证为四位的年份,两位的月份,两位的日期.例如,查询订单表日期大于‘20080301’.可以这样写: 1 se ...
- php学习笔记——日期和时间
一.time() 来取得服务器当前时间的时间戳 UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和. ...
- python学习笔记23(时间与日期 (time, datetime包))
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime. time包 time包基于C语言的库函数(library functions).Python的解释器通 ...
- 19、Python标准库: 日期和时间
一.time时间模块 import time 1 .时间戳 时间戳(timestamp):时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. time_stamp = tim ...
- Python学习总结14:时间模块datetime & time & calendar (一)
Python中的常用于处理时间主要有3个模块datetime模块.time模块和calendar模块. 一.time模块 1. 在Python中表示时间的方式 1)时间戳(timestamp):通常来 ...
- 《转》Python学习(15)-对文件的操作(二)
转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...
- python时间戳、日期、时间转换
1.str转时间戳 # 字符类型的时间 tss1 = '2013-10-10 23:40:00' # 转为时间数组 timeArray = time.strptime(tss1, "%Y-% ...
随机推荐
- jQuery插件实现的方法和原理简单说明
下文来自 http://www.itzhai.com/jquery-plug-ins-to-achieve-the-methods-and-principles-of-simple-instructi ...
- 引用 struts2标签详解 - wo的的日志 - 网易博客
引用 元元 的 struts2标签详解 引用 COLD 的 struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@t ...
- openstack controller ha测试环境搭建记录(二)——配置corosync和pacemaker
corosync.conf请备份再编辑:# vi /etc/corosync/corosync.conf totem { version: 2 token: 10000 t ...
- iOS开发——获取当前屏幕显示的viewcontroller
获取当前屏幕显示的viewcontroller,然后想怎么跳就怎么跳. - (UIViewController *)getCurrentVC { UIViewController *result = ...
- Nutch是个不错的选择
对搜索引擎的理解:我们并没有google 的源代码,因此学习搜索引擎Nutch是个不错的选择.了解一个大型分布式的搜索引擎如何工作是一件让人很受益的事情.在写 Nutch的过程中,从学院派和工业派借鉴 ...
- Apache 重启时会有报 AH00558
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0 ...
- JavaScript 事件模型 事件处理机制
什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了.事件可能是用户在某些内容上的点击 ...
- LPC1768串口使用
Lpc1768内置了四个串口通讯模块,都是异步通讯模块,其中,串口0/2/3是普通串口通讯,串口1与 UART0/2/3 基本相同,只是增加了一个 Modem 接口和 RS-486/EIA-486 模 ...
- listen函数里面backlog的意义以及各种情况
先看了这篇: http://www.cppblog.com/thisisbin/archive/2010/02/07/107444.html 里面说了会维护两个队列,established 和 syn ...
- iOS开源库--最全的整理 分类: ios相关 2015-04-08 09:20 486人阅读 评论(0) 收藏
youtube下载神器:https://github.com/rg3/youtube-dl 我擦咧 vim插件:https://github.com/Valloric/YouCompleteMe vi ...