博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习--15 日期和时间
阅读量:7009 次
发布时间:2019-06-28

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

方法预览:

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-8from datetime import datetimenow = datetime.now()print(now)print(now.strftime('%Y-%m-%d %H:%M:%S'))print(type(now))

输出:

2017-02-06 23:18:29.6246982017-02-06 23:18:29

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

获取时间戳

# coding: utf-8from datetime import datetimeimport timenow = datetime.now()print(now)# datetime模块提供print(now.timestamp())# time模块提供print(time.time())

输出:

2017-02-06 23:26:54.6315821486394814.6315821486394814.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.01486394960.0

注意:timestamp的值是与时区无关的。datetime是有时区的。

下面演示如何把timestamp转换为datetime。

时间戳转日期:

# coding: utf-8from datetime import datetimenow = datetime.now()ts = now.timestamp()print(datetime.fromtimestamp(ts))   # 本地时间print(datetime.utcfromtimestamp(ts))    # UTC时间

输出:

2017-02-06 23:38:05.2139372017-02-06 15:38:05.213937

datetime加减

可以直接导入timedelta类实现日期加减:

# coding: utf-8from datetime import datetime, timedeltaimport timenow = 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-8import time# 获取时间戳timestamp = time.time()print(timestamp)# 格式时间print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))# 返回当地时间下的时间元组tprint(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) # 睡眠2sprint('sleeping end.')

输出:

1486797515.787422017-02-11 15:18:35time.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.01486796618.0time.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
1 tm_mon
2 tm_mday
3 tm_hour
4 tm_min
5 tm_sec
6 tm_wday
7 tm_yday
8 tm_isdst

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重新初始化时间相关设置。

转载地址:http://usjtl.baihongyu.com/

你可能感兴趣的文章
【转载】SQLITE3 使用总结
查看>>
mysql 原理 ~ 临时表
查看>>
后缀数组
查看>>
记忆化搜索(DFS+DP) URAL 1223 Chernobyl’ Eagle on a Roof
查看>>
Git 常用命令
查看>>
Windows消息机制详解
查看>>
用微软makecert.exe生成一个自签名的证书
查看>>
socket实现大型文件传输
查看>>
项目 项目集 项目组合
查看>>
XPATH 带命名空间数据的读取
查看>>
MySQL逻辑架构简介
查看>>
网上找的Gif图片解析类
查看>>
node.js初学遇到的问题
查看>>
hibernate08--OpenSessionInView
查看>>
转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法...
查看>>
配置ORACLE 客户端连接到数据库
查看>>
drop asm disk、撤销drop asm disk
查看>>
Standby Redo Log 的设定原则、创建、删除、查看、归档位置
查看>>
[十二省联考2019]异或粽子
查看>>
winform 皮肤
查看>>