Python编程:time和datetime时间模块详解

简介: Python编程:time和datetime时间模块详解

image.png

说明:

绿色线条:timestamp -> datetime对象路径

橙色线条:datetime对象 -> timestamp路径

灰色线条:time模块 与 datetime模块 分界过渡


时间的四个存在方式

时间戳,float

元组形式, struct_time

字符串形式,str

时间对象 datetime, date, time

格式化


年-月-日 时:分:秒.毫秒
%Y-%m-%d %H:%M:%S.%f

代码实例

导入模块


# -*- coding:utf-8 -*-
import time
from datetime import datetime
from datetime import date
from datetime import timedelta

一、时间的获取

# 1、获取当前时间的时间戳
t = time.time()
# <type 'float'>, 1525687472.870682
# 2、获取当前时间元组
t = time.localtime()
# <type 'time.struct_time'>,
# time.struct_time(tm_year=2018, tm_mon=5, tm_mday=7, tm_hour=18, 
#        tm_min=5, tm_sec=47, tm_wday=0, tm_yday=127, tm_isdst=0))
# 3、获取当前时间的字符串
# 本地时间
t1 = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
t2 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
# utc时间:就是0时区的区时,比北京时间晚8小时
t3 = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
t4 = time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
"""
<type 'str'>, '2018-05-07 18:03:38'
<type 'str'>, '2018-05-07 18:03:38'
<type 'str'>, '2018-05-07 10:03:38'
<type 'str'>, '2018-05-07 10:03:38'
"""
# 4、获取时间对象
# 获取当前日期和时间 datetime
t = datetime.now()
# (<type 'datetime.datetime'>, 
# datetime.datetime(2018, 5, 7, 18, 10, 13, 538265))
# 获取当前日期 date
t1 = datetime.now().date()
# (<type 'datetime.date'>, datetime.date(2018, 5, 7))
# 获取当前时间 time
t2 = datetime.now().time()
# (<type 'datetime.time'>, datetime.time(18, 11, 4, 939271))

二、时间的计算

t = datetime.now() - timedelta(days=3)

三、时间形式之间的转换

# 1、时间戳与时间元组
# 时间戳 -> 时间元组:
t = time.localtime(1525681106.08)
# 时间元组 -> 时间戳
t = time.mktime(time.localtime())
# 2、时间元组与字符串
# 时间元组 -> 字符串
t = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
# 字符串 ->  时间元组
t = time.strptime("2018-01-07 17:26:24","%Y-%m-%d %H:%M:%S")
# 3、时间戳与字符串
# 时间戳 -> 字符串
t = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(1525681106.08))
t = datetime.fromtimestamp(1525681106.08).strftime("%Y-%m-%d %H:%M:%S")
# 字符串 -> 时间戳:
t = time.mktime(time.strptime("2018-01-07 17:26:24","%Y-%m-%d %H:%M:%S"))
# 4、时间戳与datetime对象
# 时间戳 -> datetime对象
t = datetime.fromtimestamp(1525681106.08)
# UTC
t = datetime.utcfromtimestamp(1525681106.08)  
# datetime对象 -> 时间戳
t = time.mktime(datetime.now().timetuple())
# 不过要注意的是time是从1900开始计算的。而datetime包含1-9999的范围
t = datetime.now().timestamp()
# 5、时间元组与datetime对象
# 时间元组对象 -> datetime对象 
t = datetime.fromtimestamp(time.mktime(time.localtime()))
# datetime对象 -> 时间元组对象
t = datetime.now().timetuple()
# 6、字符串与datetime对象
# str字符串 -> datetime对象 
t = datetime.strptime("2018-01-07 17:26:24", "%Y-%m-%d %H:%M:%S")
# datetime对象 -> str字符串
t = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 7、datetime, data, time 对象之间转换
# datetime对象 -> date对象
t1 = datetime.now().date() 
# datetime对象 -> time对象
t2 = datetime.now().time()
# date对象 + time对象 -> datetime对象
t = datetime.combine(t1, t2)
# <type 'datetime.datetime'>
# 8、date对象与时间戳
# 时间戳  ->  date对象
t = date.fromtimestamp(time.time())

参考:


之前写过的time模块 Python编程:time时间模块

time,datetime中字符串,时间对象,和时间戳的转换学习整理

相关文章
|
3月前
|
Python
Python编程基石:整型、浮点、字符串与布尔值完全解读
本文介绍了Python中的四种基本数据类型:整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。整型表示无大小限制的整数,支持各类运算;浮点型遵循IEEE 754标准,需注意精度问题;字符串是不可变序列,支持多种操作与方法;布尔型仅有True和False两个值,可与其他类型转换。掌握这些类型及其转换规则是Python编程的基础。
210 33
|
2月前
|
数据采集 分布式计算 大数据
不会Python,还敢说搞大数据?一文带你入门大数据编程的“硬核”真相
不会Python,还敢说搞大数据?一文带你入门大数据编程的“硬核”真相
82 1
|
3月前
|
设计模式 安全 Python
Python编程精进:正则表达式
正则表达式是一种强大的文本处理工具,用于搜索、匹配和提取模式。本文介绍了正则表达式的语法基础,如`\d`、`\w`等符号,并通过实例展示其在匹配电子邮件、验证电话号码、处理日期格式等场景中的应用。同时,文章提醒用户注意性能、编码、安全性等问题,避免常见错误,如特殊字符转义不当、量词使用错误等。掌握正则表达式能显著提升文本处理效率,但需结合实际需求谨慎设计模式。
135 2
|
4月前
|
数据采集 安全 BI
用Python编程基础提升工作效率
一、文件处理整明白了,少加两小时班 (敲暖气管子)领导让整理100个Excel表?手都干抽筋儿了?Python就跟铲雪车似的,哗哗给你整利索!
114 11
|
5月前
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
218 14
|
6月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
185 28
|
6月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
86 4
|
6月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
10月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
301 62
|
10月前
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
213 61

热门文章

最新文章

推荐镜像

更多