Python3学习笔记30-datetime模块
datetime是Python处理日期和时间的标准库
获取当前的日期和时间
from datetime import datetime
now = datetime.now()
print(now)
print(type(now))
from datetime import datetime 第一个datetime是模块,第二个datetime是该模块下的类。
这个类下面的.now()返回当前日期和时间,其类型是datetime
如果只写import datetime。需要datetime.datetime.now()
获取指定日期和时间
from datetime import datetime
dt = datetime(2017,4,19,23,45)
print(dt)
通过传入参数可直接获得指定的日期和时间
datetime转换为timestamp
1970年1月1日00:00:00 UTC+00:00时区的时刻称为epoch time,记为0。当前时间相对于epoch time的秒数,称为timestamp,1970年前的时间timestamp为负数 。
假定时间已校准,那么全球各地的计算机任意时刻的timestamp都是完全相同的,所以计算机存储的当前时间用timestamp表示。
调用timestamp()方法,将datetime转换成timestamp
from datetime import datetime
dt = datetime(2017,4,19,23,45)
print(dt)
ts = dt.timestamp()
print(ts)
timestamp转换成datetime
from datetime import datetime
dt = datetime(2017,4,19,23,45)
print(dt)
ts = dt.timestamp()
print(ts)
print(datetime.fromtimestamp(ts))
print(datetime.utcfromtimestamp(ts))
使用fromtimestamp()可将timestamp转换成本地时间
使用utcfromtmestamp()可将timestamp转成成utc时间
因为北京是utc+8:00,所以utc时间会减少八小时
str转换成datetime
from datetime import datetime
times = '2015-12-24 18:29:30'
print(type(times))
cd = datetime.strptime(times,'%Y-%m-%d %H:%M:%S')
print(type(cd))
通过datetime.strptime()实现,需要一个日期和时间的格式化字符串,格式可参考python文档。转换后的datetime没有时区信息
datetime转换成str
from datetime import datetime
now = datetime.now()
print(now.strftime('%a, %b %d %H:%M:%S'))
使用strftime()可将datetime转换成对应格式的str
datetime加减
from datetime import datetime,timedelta
now = datetime.now()
print(now)
print(now+timedelta(days=1,hours=10))
通过timedelta类,使用+,- 可计算前几天或后几天的时间
本地时间转换为utc时间
本地时间是指系统设置时区的时间,比如北京时间是UTC+8:00时区的时间,而UTC时间是指UTC+0:00的时间
datetime类型有时区属性tzinfo,但是默认为None,可以通过给date设置时区来区分哪个时区
from datetime import datetime,timedelta,timezone
tz = timezone(timedelta(hours=8))#创建时区UTC+8:00
now = datetime.now()
print(now)
dt = now.replace(tzinfo=tz)#设置为UTC+8:00
print(dt)
时区转换
from datetime import datetime,timedelta,timezone
utc = datetime.utcnow().replace(tzinfo = timezone.utc)#拿到当前utc时间,并将时区设置为utc+0:00
print(utc)
bj = utc.astimezone(timezone(timedelta(hours=8)))#将时区转换为北京时间
print(bj)
使用utcnow()可获得当前utc时间,使用带时区的datetime,通过astimezone()方法,可以转换到任意时区
练习
假设你获取了用户输入的日期和时间如2015-1-21 9:01:30,以及一个时区信息如UTC+5:00,均是str,请编写一个函数将其转换为timestamp:
from datetime import datetime, timezone, timedelta def to_timestamp(dt_str, tz_str):
time1 = datetime.strptime(dt_str,'%Y-%m-%d %H:%M:%S')
hours = int(tz_str[3:tz_str.index(':')])
tz = timezone(timedelta(hours=hours))
dt = time1.replace(tzinfo=tz)
return dt.timestamp() t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+7:00')
assert t1 == 1433121030.0, t1 t2 = to_timestamp('2015-5-31 16:10:30', 'UTC-09:00')
assert t2 == 1433121030.0, t2 print('ok')
Python3学习笔记30-datetime模块的更多相关文章
- Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, ...
- Python3学习笔记(urllib模块的使用)
转载地址:https://www.cnblogs.com/Lands-ljk/p/5447127.html 1.基本方法 urllib.request.urlopen(url, data=None, ...
- 【转】Python3学习笔记(urllib模块的使用)
原文地址:https://www.cnblogs.com/Lands-ljk/p/5447127.html 1.基本方法 urllib.request.urlopen(url, data=None, ...
- python3学习笔记(7)_listComprehensions-列表生成式
#python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一 ...
- python3学习笔记(6)_iteration
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高 # f ...
- Python3学习笔记 - 准备环境
前言 最近乘着项目不忙想赶一波时髦学习一下Python3.由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境.Python3的中文教程 ...
- python3学习笔记(5)_slice
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits ...
- Python3学习笔记(十五):常用时间模块time和datetime
一.time模块 1.时间戳 time.time() :从1970-01-01到至今的秒数 import time print(time.time()) 1529238004.2784646 2.等待 ...
- Python学习笔记:time模块和datetime模块(时间和日期)
time模块 time模块通常用来操作时间戳信息(各种“秒”),常用的方法有: time.sleep(seconds):将当前程序阻塞指定秒数,然后继续运行程序. time.time():返回当前时间 ...
- python自动化测试学习笔记-5常用模块
上一次学习了os模块,sys模块,json模块,random模块,string模块,time模块,hashlib模块,今天继续学习以下的常用模块: 1.datetime模块 2.pymysql模块(3 ...
随机推荐
- 《玩转Django2.0》读书笔记-编写URL规则
<玩转Django2.0>读书笔记-编写URL规则 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. URL(Uniform Resource Locator,统一资源定位 ...
- js中Date与timestamp(时间戳)的相互转换
#时间(Date)转时间戳(Timestamp): 1.var timestamp1 = (new Date()).valueOf(); // 结果:1535374762785,通过valueOf() ...
- Spring+Mybatis+SpringMVC+Atomikos多数据源共存+不同数据库事物一致性处理
网上找了一大堆的例子,没一个跑通的,都是copy转发,哎,整理得好辛苦..做个笔记,方便正遇到此问题的猿们能够得到帮助....废话不多说,贴代码..... 项目结构说明: 1.dao层的admin.w ...
- Linux记录-GC分析
查看gc情况: jstat -gc PID 刷新频率 jstat -gc 12538 5000 导出堆内存dump 文件: jmap -dump:file=文件名.bin [pid] 导出线程dump ...
- C#设计模式(14)——模板方法模式
1.模板方法模式介绍 提到模板我们经常会想到简历模板/PPT模板等,以简历模板为例,不同的人可以使用一样的简历模板,在填充内容时根据自己的名字/工作经历等填写自己的内容,从而形成不同的简历.在OO中模 ...
- Mysql:性能优化
性能优化 优化MySQL数据库是数据库管理员和数据库开发人员的必备技能.MySQL优化,一方面是找出系统的瓶颈,提高MySQL数据库的整体性能:一方面需要合理的结构设计和参数调整,以提高用户操作响应的 ...
- Canvas判断内容为空
如题,项目需要做一个canvas的绘图工具,绘制图纸传递给后台.因此需要做一个非空验证,记录解决方法祝大家早日脱坑. js验证代码: //验证canvas画布是否为空函数function isCanv ...
- tmux用法【常用】
类似各种平铺式窗口管理器,tmux使用键盘操作,常用快捷键包括: Ctrl+b 激活控制台:此时以下按键生效 系统操作 ? 列出所有快捷键:按q返回 d 脱离当前会话:这样可以暂时返回Shell界面, ...
- 【.Net平台下插件开发】-MEF与MAF初步调研
背景 Team希望开发一个插件的平台去让某搜索引擎变得更好.主要用于采集一些不满意信息(DSAT)给Dev.这些信息会由不同的team提供不同的 tool分析.有的提供仅仅是一个website,有 ...
- UDF简记
摘要: 1.开发UDF 2.开发UDAF 3.开发UDTF 4.部署与测试 5.一个简单的实例 内容:1.开发UDF 函数类需要继承org.apache.hadoop.hive.ql.UDF 实现ev ...