Python常用内建模块(datetime)
来源:互联网 发布:苹果5如何用移动4g网络 编辑:程序博客网 时间:2024/05/23 19:45
一、思维脑图
二、datetime模块介绍
datetime是Python处理日期和时间的标准库。
1)获取当前日期和时间:
from datetime import datetimenow = datetime.now() # 获取当前datetimeprint(now)注意:from datetime import datetime表示的是导入datetime模块中的datetime类。如果,仅仅只是import datetime,那么在下面的编码过程中则需要写:now = datatime.datetime.now(),略显麻烦!
运行结果如下:
"C:\Program Files\Python36\python.exe" C:/Users/Administrator/PycharmProjects/Python全网练习/常用内置模块.py2017-12-17 16:31:25.362610Process finished with exit code 0
##通过这条命令我们可以知道now的类型为: datatime
print(type(now))
运行结果如下:
<class 'datetime.datetime'>
2)获取指定日期和时间
from datetime import datetimedt = datetime(2017,12,12,23,00)print(dt)2017-12-12 23:00:00注意:在使用datetime进行构造实例时,要遵循特定的规则: | Data and other attributes defined here: | | max = datetime.datetime(9999, 12, 31, 23, 59, 59, 999999) | | min = datetime.datetime(1, 1, 1, 0, 0) | | resolution = datetime.timedelta(0, 0, 1)
3)datetime转换为timestamp
插话:
在计算机中,时间实际上是用数字表示的。我们把1970年1月1日 00:00:00 UTC+00:00时区的时刻称为epoch time,记为0(1970年以前的时间timestamp为负数),当前时间就是相对于epoch time的秒数,称为timestamp。
timestamp的值与时区毫无关系,因为timestamp一旦确定,其UTC时间就确定了,转换到任意时区的时间也是完全确定的
转换的时候,直接调用timestamp()方法即可
from datetime import datetimedt = datetime(2017,12,17,18,00) # 用指定日期时间创建datetimeprint(dt.timestamp()) # 把datetime转换为timestamp
4)timestamp转换为datetime
from datetime import datetimet = 1513504800.0 #在这里,我们直接把上面的timestamp拿下来print(datetime.fromtimestamp(t))
运行结果如下:
"C:\Program Files\Python36\python.exe" C:/Users/Administrator/PycharmProjects/Python全网练习/常用内置模块.py2017-12-17 18:00:00Process finished with exit code 0
5)timestamp转换到UTC标准时区的时间
from datetime import datetimet = 1513504800.0print(datetime.fromtimestamp(t)) # 本地时间print(datetime.utcfromtimestamp(t)) # UTC时间
运行结果:
"C:\Program Files\Python36\python.exe" C:/Users/Administrator/PycharmProjects/Python全网练习/常用内置模块.py2017-12-17 18:00:00 ##本地时间是指当前操作系统设定的时区2017-12-17 10:00:00 ##格林威治标准时间与本地时间差了8小时,可以反推出本地在地理上位于东八区Process finished with exit code 0
6)str转换为datetime
from datetime import datetimea=input("time:")print(type(a))cday = datetime.strptime(a, '%Y-%m-%d %H:%M:%S')print(cday)
运行结果:
"C:\Program Files\Python36\python.exe" C:/Users/Administrator/PycharmProjects/Python全网练习/常用内置模块.pytime:2017-12-17 16:12:26<class 'str'>2017-12-17 16:12:26Process finished with exit code 0
7)datetime转换为str
from datetime import datetimenow = datetime.now()print("转换前时间的类型为:")print(type(now))strnow = now.strftime('%a, %b %d, %H:%M')print("转换后时间的类型为:")print(type(strnow))print("结果展示:")print(strnow)
运行结果:
"C:\Program Files\Python36\python.exe" C:/Users/Administrator/PycharmProjects/Python全网练习/常用内置模块.py转换前时间的类型为:<class 'datetime.datetime'>转换后时间的类型为:<class 'str'>结果展示:Sun, Dec 17, 17:05
8)datetime加减
from datetime import datetime, timedeltanow = datetime.now()nowOut[13]: datetime.datetime(2017, 12, 17, 17, 8, 28, 775024)now + timedelta(hours=10)Out[14]: datetime.datetime(2017, 12, 18, 3, 8, 28, 775024)nowOut[15]: datetime.datetime(2017, 12, 17, 17, 8, 28, 775024)now - timedelta(days=1)Out[16]: datetime.datetime(2017, 12, 16, 17, 8, 28, 775024)nowOut[17]: datetime.datetime(2017, 12, 17, 17, 8, 28, 775024)
9)本地时间转换为UTC时间
本地时间是指系统设定时区的时间,例如北京时间是UTC+8:00时区的时间,而UTC时间指UTC+0:00时区的时间。
一个datetime类型有一个时区属性tzinfo,但是默认为None,所以无法区分这个datetime到底是哪个时区,除非强行给datetime设置一个时区:
from datetime import datetime, timedelta, timezonetz_utc_8 = timezone(timedelta(hours=8)) now = datetime.now()nowOut[23]: datetime.datetime(2017, 12, 17, 17, 14, 19, 101426)dt = now.replace(tzinfo=tz_utc_8)dtOut[25]: datetime.datetime(2017, 12, 17, 17, 14, 19, 101426, tzinfo=datetime.timezone(datetime.timedelta(0, 28800)))
10)时区转换
先通过utcnow()拿到当前的UTC时间,再转换为任意时区的时间
from datetime import datetime, timedelta, timezone# 拿到UTC时间,并强制设置时区为UTC+0:00:utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)print(utc_dt)# astimezone()将转换时区为北京时间:bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))print(bj_dt)# astimezone()将转换时区为东京时间:tokyo_dt = utc_dt.astimezone(timezone(timedelta(hours=9)))print(tokyo_dt)# astimezone()将bj_dt转换时区为东京时间:tokyo_dt2 = bj_dt.astimezone(timezone(timedelta(hours=9)))print(tokyo_dt2)
运行结果:
"C:\Program Files\Python36\python.exe" C:/Users/Administrator/PycharmProjects/Python全网练习/常用内置模块.py2017-12-17 09:19:57.707928+00:002017-12-17 17:19:57.707928+08:002017-12-17 18:19:57.707928+09:002017-12-17 18:19:57.707928+09:00Process finished with exit code 0
注意: 时区转换的关键在于,拿到一个datetime时,要获知其正确的时区,然后强制设置时区,作为基准时间。 利用带时区的datetime,通过astimezone()方法,可以转换到任意时区。
阅读全文
0 0
- Python常用内建模块(datetime)
- Python基础-常用内建模块 datetime
- Python常用内建模块—datetime\collections\struct
- python学习笔记(31)--内建模块datetime
- Python内建模块datetime的使用
- 内建模块-datetime
- Python常用内建模块
- Python 常用内建模块
- python常用内建模块
- Python之学习笔记(常用内建模块)
- Python学习 (十 常用内建模块)
- Python常用内建模块之hashlib
- Python基础-常用内建模块 collections
- Python基础 常用内建模块
- Python基础 常用内建模块
- python 内建模块
- python学习笔记(十二) - 常用内建模块
- python笔记7--常用的内建模块
- FIFOQueue '_4_batch_processing/batch_join/fifo_queue' is closed and has insu
- 【版本管理】Git使用
- idea破解办法
- 范数的直觉性理解
- 最长递增子序列
- Python常用内建模块(datetime)
- 【MySQL】char和varchar的不同
- project euler 20 Factorial digit sum
- [Err] 1064
- 留言板管理界面
- 写在前面的话
- FPGA较传统CPU强在哪里?
- 线性表- 大整数操作
- iOS开发者的大前端感悟:向前端说对不起