Python 日期和时间戳的转换

Python 日期和时间戳的转换

1. Python中处理时间的模块

Python中处理时间的模块有timedatetimecalendar

在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 time模块详解
  • Python datetime模块详解
  • Python time模块和datetime模块详解

转载于:https://www.cnblogs.com/strivepy/p/10436213.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快应用比赛_我的应用如何在国际学生比赛中获得第三名

快应用比赛by Rafael Melo通过拉斐尔梅洛 我的应用如何在国际学生比赛中获得第三名 (How my App won third place in an International Student Competition) I developed an App that won third place at the IEEE Mobile Applications Development Contest 2017 (IEEEmadC 2…

JAVA中String类的intern()方法的作用

一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的 首先请大家看一个例子: public static void main(String[] args) throws Exception { String a "b" ; String b "b" ; …

java 如何排查内存溢出_java 内存溢出排查

测试代码,如下示例:import java.util.ArrayList;import java.util.List;/*** Description 测试内存溢出, 启动时设置参数,最大堆内存为1m, 内存溢出时dump出内存文件 -Xmx1m -XX:HeapDumpOutOfMemoryError* Author luzy* Date 2018/10/5 11:0…

《企业级ios应用开发实战》一2.2 iOS框架介绍

2.2 iOS框架介绍 iOS衍生自Mac OS X的成熟内核,但iOS操作系统更紧凑和高效,支持iPhone和iPod Touch的硬件。iOS继承了Mac OS X的风格,包括:统一的OS X 内核,针对网络的BSD套接字,以及Objective-C和C/C编译器…

python的opencv 车牌识别 开源_毕节进出口车牌识别系统怎么样

毕节进出口车牌识别系统怎么样 gzheu8il毕节进出口车牌识别系统怎么样 系统拓扑图如下:该系统以社区中心机房为枢纽,有机的将智慧家居住户、社区数字化服务、物业数字化管理、社区智能化管理结合起来,真正的实现:住户与住户之间的…

了解使用JavaScript进行面向对象编程的基础(并增强您的编码…

by Kris Baillargeon通过克里斯拜伦 学习使用JavaScript进行面向对象编程的基础知识(并增强您的编码能力!) (Learn the basics of object-oriented programming with JavaScript (and supercharge your coding abilities!)) As a moderator of the freeCodeCamp ch…

postgresql的别名要用双引号才可以

postgresql的别名要用双引号""才可以 转载于:https://www.cnblogs.com/handsome1013/p/10443001.html

imx6 mac地址设置

imx6的mac地址总是固定的值,所以需要更改,采用的方法是在uboot中设置环境变量,之后在kernel中使用uboot中设置的mac地址的值。本文记录更改的过程。 参考链接: http://www.cnblogs.com/zengjfgit/p/5711304.html uboot lib_arm/board.c …

java try catch陷阱_Java异常处理最佳实践及陷阱防范

原标题:Java异常处理最佳实践及陷阱防范出自《深夜里的程序猿》作者:wangzenghuang前言不管在我们的工作还是生活中,总会出现各种“错误”,各种突发的“异常”。无论我们做了多少准备,多少测试,这些异常总会…

vivo手机怎么投屏到电脑_投屏软件电脑加手机投屏软件投屏

优秀的资源工具可以让你事半功倍!本号文内资源已经手工转存整理,安全起见,回复 “领取资源” 按提示自助领取。今天分享的是一家公司出品的投屏神器。为避免被举报这里就不说出软件名了。它可以在局域网内把手机的屏幕投到电脑上,…

How to upload windows Sysprep Files to VMware vCenter Server Appliance 6.5(vC

vCSA5.5中可以登录到端口5480中去上传,vCSA 6.0以后就不支持了。但是可以通过Enable “Pi Shell”来做。 首先确保vCSA的ssh可用: 0. Make sure that SSH in enabled on the VCSA. Home > Administration > System configuration (under Deploymen…

开源短地址_如何在短短5分钟内完成您的第一个开源贡献

开源短地址by Roshan Jossey罗珊乔西(Roshan Jossey) 如何在短短5分钟内完成您的第一个开源贡献 (How to make your first open source contribution in just 5 minutes) The best way to level up your programming skills it to code more. The second best thing is to rea…

【Qt开发】QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent

建了一个对话框,我不想把边框去掉,只想去掉关闭按钮, setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::WindowContextHelpButtonHint); 结果那个问号的按钮去掉了,但是关闭按钮还在,求助啊 set…

Vivado Design Suite用户指南之约束的使用第二部分(约束方法论)

Constraints Methodology(约束方法论) 关于约束方法论 设计约束定义了编译流程必须满足的要求,以使设计在板上起作用。 并非所有步骤都使用所有约束在编译流程中。 例如,物理约束仅在实现步骤期间使用(即,由…

eval函数 php_PHP的一句话木马代码和函数eval的简介

大清早的刚从床上爬起来。雨落就跑来找我问我这段代码是什么意思<?php eval($_POST[pp]);?>看了一下&#xff0c;post接收pp的值&#xff0c;抑制错误输出。呵呵开个玩笑&#xff0c;其实不是这么简单&#xff0c;这是一段PHP木马代码&#xff0c;也就是我们所说的后门…

linux安装python_Python - 爱豆

Python下载Python最新源码&#xff0c;二进制文档&#xff0c;新闻资讯等可以在Python的官网查看到&#xff1a;Python官网&#xff1a;你可以在以下链接中下载 Python 的文档&#xff0c;你可以下载 HTML、PDF 和 PostScript 等格式的文档。Python文档下载地址&#xff1a;doc…

如何将您的#100DaysOfCode登录转换为视觉体验

by Joe Warren通过乔沃伦 如何将您的&#xff03;100DaysOfCode登录转换为视觉体验 (How to Transform Your #100DaysOfCode Log Into a Visual Experience) Learning how to code is an unrivaled modern experience. As an aspiring developer, no matter what level you’r…

Python中集合(set)的操作及一些比较常见的用法

Python除了List、Tuple、Dict等常用数据类型外&#xff0c;还有一种数据类型叫做集合&#xff08;set&#xff09;&#xff0c;集合的最大特点是&#xff1a;集合里边的元素是不可重复的并且集合内的元素还是无序的&#xff0c;所以一般情况下集合常用的两个场景是&#xff1a;…

php中的图像下载函数,PHP实现的下载远程图片自定义函数分享

/*** PHP下载远程图片到本地** param $url string 远程文件地址* param $filename string 保存后的文件名(为空时则为随机生成的文件名&#xff0c;否则为原文件名)* param $fileType array 允许的文件类型* param $dirName string 文件保存的路径(路径其余部分根据时间系统自动…

Linux 文件的压缩与解压

1. tar结尾压缩命令 [roottest ~]# tar -cvf grub.tar /boot/grub/ 查看压缩包文件 [roottest ~]# tar -vtf grub.tar 解压文件 #tar -xvf grub.tar # tar -xvf grub.tar -C 解压目录 2. gz结尾压缩命令 # tar -zcvf grub.tar.gz /boot/grub gz结尾解压命令 #tar -zxvf gr…