Python 日期和时间戳的转换
Python 日期和时间戳的转换
1. Python中处理时间的模块
Python中处理时间的模块有time、datetime和calendar。
在Python中表示时间的方式:
- 时间戳:10位整数位和若干小数位,例如 1551153156.6358607
- 元组(struct_time): 含有9个元素的元组,例如 (tm_year=2011, tm_mon=9, tm_mday=28, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=271, tm_isdst=-1)
- 格式化字符串: 格式化的时间字符串, 例如 '2019-02-26 12:45:46'
time模块,以元组(struct_time)为核心实现时间戳和格式化时间字符串的相互转换。
datetime模块,以datetime类实例对象为核心实现时间戳和格式化时间字符串的相互转换。
2. Python的time模块
time模块是通过调用C库实现的,所以在有些平台上无法使用。大部分接口和C标准库的time.h一致。
使用time模块来进行格式化时间字符串和时间戳的相互转换。
2.1 将时间戳转换为格式化字符串
使用time模块获取当前时间的时间戳:
>>> import time
>>> time.time()
1551157481.034565
将时间戳转换为元组(struct_time):
>>> time.localtime(time.time())
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=2, tm_sec=1, tm_wday=1, tm_yday=57, tm_isdst=0)
将元组(struct_time)转换为格式化时间字符串:
>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'2019-02-26 13:04:41'
2.2 将格式化字符串转换为时间戳
将格式化时间字符串'2019-02-26 13:04:41'转换为时间戳。
将格式化时间字符串转换为元组(struct_time):
>>> str_time = '2019-02-26 13:04:41'
>>> time.strptime(str_time, '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=4, tm_sec=41, tm_wday=1, tm_yday=57, tm_isdst=-1)
将元组(struct_time)转换为时间戳:
>>> time.mktime(time.strptime(str_time, '%Y-%m-%d %H:%M:%S'))
1551157481.0
2.3 使用time模块获取当前日期和时间
使用time模块获取当前日期(使用当前时间的struct_time作为缺省参数):
>>> time.strftime('%Y-%m-%d')
'2019-02-26'
使用time模块获取当前时间(使用当前时间的struct_time作为缺省参数):
>>> time.strftime('%H:%M:%S')
'13:21:13'
3. Python 的datetime模块
和time模块相比,datetime模块提供更直接易用的接口,功能也更加强大。
datetime模块提供了处理日期和时间的类,既有简单的方式,也有复杂的方式。它虽然支持日期和时间算法,但其实现是重点是输出的格式化操作和更加有效的属性提取功能。
3.1 datetime模块中定义的类
datetime模块中定义的类(这些类的对象都是不可变的):
- datetime.date: 表示日期,常用的属性有year、month和day
- datetime.time: 表示时间,常用的属性有hour、minute、second和microsecond
- datetime.datetime: 表示日期时间
- datetime.timedelta: 表示两个date、time和datetime实例之间的时间间隔,最小单位可达微秒
- datetime.tzinfo: 时区相关对象的抽象基类,由time和datetime类使用
- datetime.timezone: Python3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量
3.2 使用datetime模块中的datetime类将时间戳转换为格式化时间字符串
使用datetime类将时间戳转换为datetime实例:
>>> import time
>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(time.time())
>>> dt
datetime.datetime(2019, 2, 26, 15, 27, 28, 678923)
将datetime实例转换为格式化字符串:
>>> dt.strftime('%Y-%m-%d %H:%M:%S')
'2019-02-26 15:27:28'
3.3 使用datetime模块中的datetime类将格式化时间字符串转换为时间戳
使用datetime类将格式化字符串'2019-02-26 15:27:28'转换为datetime实例:
>>> st = '2019-02-26 15:27:28'
>>> dt = datetime.strptime(st, '%Y-%m-%d %H:%M:%S')
>>> dt
datetime.datetime(2019, 2, 26, 15, 27, 28)
将datetime实例转转为元组(struct_time):
>>> tp = dt.timetuple()
>>> tp
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=15, tm_min=27, tm_sec=28, tm_wday=1, tm_yday=57, tm_isdst=-1)
将元组(struct_time)转换为时间戳:
>>> time.mktime(tp)
1551166048.0
也可以直接使用datetime实例的timestamp()函数直接获取时间戳:
>>> dt.timestamp()
1551166048.0
3.4 使用datetime类获取当前日期和时间
使用datetime类获取当前日期:
>>> datetime.now().date().strftime('%Y-%m-%d')
'2019-02-26'
使用datetime类获取当前时间:
>>> datetime.now().time().strftime('%H:%M:%S')
'15:48:43'
4. 参考资料
Python 日期和时间戳的转换的更多相关文章
- python中时间、日期、时间戳的转换
1.简介 在编写代码时,往往涉及时间.日期.时间戳的相互转换. 2.示例 # 引入模块 import time, datetime 2.1 str类型的日期转换为时间戳 # 字符类型的时间 tss1 ...
- Python3 日期与时间戳互相转换(函数可调用)
一.前言 在开发中,我们经常会遇到时间戳转换日期,或者日期转换为时间戳: 日期格式:2019-08-01 00:00:00 时间戳格式:1564588800 关于时间戳 Unix时间戳(Unix ti ...
- MySQL 日期和时间戳互相转换
① 时间戳转换成日期 FROM_UNIXTIME 例如: 数据表中 invest_time 存储的是时间戳,如 1429063399 使用 FROM_UNIXTIME 可以把时间戳转换为日期: sel ...
- 前端(js/jquery) 日期和时间戳的转换
一.JavaScript中获取当前时间的时间戳 方法一: var timestamp=Date.parse(new Date()); ====>结果是:1451441086000 注:这种方式精 ...
- MySQL中日期和时间戳互相转换的函数和方法
时间戳转换成日期 复制代码代码如下: FROM_UNIXTIME 例如: 数据表中 invest_time 存储的是时间戳,如 1429063399 使用 FROM_UNIXTIME 可以把时间戳转 ...
- jq日期与时间戳互相转换
方法1:$.extend({ myTime: { CurTime: function () { return Date.parse(new Date()) / 1000; }, DateToUnix: ...
- Shell Python 日期和时间戳的互相转换
一.初衷: 很多时候,时间的存储都是时间戳格式,如果需要展示就要转化成标准格式日期.也许会需要date和timestamp互转. 二.方法: 1.Shell下对date和timestamp的互转,是通 ...
- Python时间,日期,时间戳之间转换,时间转换时间戳,Python时间戳转换时间,Python时间转换时间戳
#1.将字符串的时间转换为时间戳方法: a = "2013-10-10 23:40:00" #将其转换为时间数组 import time timeArray = time.strp ...
- python 时间、日期、时间戳的转换
在实际开发中经常遇到时间格式的转换,例如: 前端传递的时间格式是字符串格式,我们需要将其转换为时间戳,或者前台传递的时间格式和我们数据库中的格式不对应,我们需要对其进行转换才能与数据库的时间进行匹配等 ...
随机推荐
- Cousera 无法播放视频 解决办法 widows 和 linux
查资料得知,Cousera无法播放课程视频原因在于DNS污染. 尽管通过FQ软件把视频看完了,在最后一课找到了这个解决办法,现在拿出来分享给大家: Windows: 请参照以下链接: http://j ...
- DS05--查找
一.学习总结 1.查找的思维导图 2.查找学习体会 2.1 关联容器和顺序容器 c++中有两种类型的容器:顺序容器和关联容器,顺序容器主要有:vector.list.deque等.其中vector表示 ...
- idea maven 打包 引用本地jar
1将本地jar包导入到mvn本地库 mvn install:install-file -Dfile=/Users/liuqiang/Documents/gmpl/gmpl-server/lib/ali ...
- 【转】利用 Apache JMeter 测试 WebSphere 性能
如果您预算紧张并且时间紧迫 —— 或者即使您不是这样 —— 那么,您可能希望考虑使用 JMeter 来对 Web 和其他应用程序进行压力测试.IBM 的 Greg Herringer 详细描述他使用这 ...
- 《C++ Primer》读书笔记
在C++中,基类必须指出希望派生类重新定义哪些函数,定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数. 引用和指针的静态类型与动态类型可以不同,这是C++ ...
- python学习 (三十) python的函数
1: 函数参数默认值 def method1(p1 = , p2 = ): // 函数有两个参数,并且都有默认值 return p1 + p2 print(method1()) print(meth ...
- 【UVA】536 Tree Recovery(树型结构基础)
题目 题目 分析 莫名A了 代码 #include <bits/stdc++.h> using namespace std; string s1,s2; void buil ...
- 浅谈PHP面向对象编程(五、继承)
5.0 继承 5.1 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使许多事物之间形成一种关系体系 . 例如猫和狗都属于动物,程序中 ...
- 第二章ARP——地址解析协议
本章我们要讨论的问题是只对 T C P / I P协议簇有意义的I P地址.数据链路如以太网或令牌环网都有自己的寻址机制(常常为 48 bit地址),这是使用数据链路的任何网络层都必须遵从的.一个网络 ...
- asp.net(c#)GridView实现鼠标悬停高亮显示
搜索了一下,发现对于这种基本都使用girdview中的RowDataBound事件完成,下面看看网上提供的简单方法protected void GridView1_RowDataBound(objec ...