Python中datetime模块提供强大易用的日期处理功能,用于记录程序操作或修改时间、时间计算、日志时间显示等功能。datatime模块重新封装了time模块,提供的类包括date、time、datetime、timedelta、tzinfo。本文提供datetime模块最常用的使用实例,解决编码中使用datetime模块的大部分需求。datetime模块更详尽用法可以查看帮助手册。

datetime模块使用实例

1、获取当前系统时间

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2020, 2, 1, 10, 35, 36, 57427)
>>> print(datetime.datetime.now())
2020-02-01 10:35:49.044320

2、获取当前日期、当前年份、当前月份、当天

>>> datetime.date.today()
datetime.date(2020, 2, 1)
>>> print(datetime.date.today())
2020-02-01
>>> str(datetime.date.today())[0:4]
''
>>> str(datetime.date.today())[5:7]
''
>>> str(datetime.date.today())[8:10]
''

4、计算距离当前10天前、10天后的日期

# 计算10天后的日期
>>> compute_day = datetime.date.today() + datetime.timedelta(days=10)
>>> print(compute_day)
2020-02-11 # 计算10天前的日期
>>> compute_day = datetime.date.today() - datetime.timedelta(days=10)
>>> print(compute_day)
2020-01-22

5、计算距离当前时间10小时后、10小时前的时间

>>> cur_time = datetime.datetime.now()
# 当前时间
>>> print(cur_time)
2020-02-01 11:04:23.632746 # 计算10小时后的时间
>>> compute_time = cur_time + datetime.timedelta(hours=10)
>>> print(compute_time)
2020-02-01 21:04:23.632746 # 计算10小时前的时间
>>> compute_time = cur_time - datetime.timedelta(hours=10)
>>> print(compute_time)
2020-02-01 01:04:23.632746

6、计算两个日期间隔多少天

>>> day1 = datetime.datetime(2020,2,1)
>>> day2 = datetime.datetime(2020,1,5)
>>> interval_day = (day1 - day2).days
>>> print(interval_day)
27

7、计算程序运行时间间隔

>>> start_time = datetime.datetime.now()
#过几秒执行如下语句
>>> end_time = datetime.datetime.now()
>>> seconds = end_time - start_time
>>> seconds = (end_time - start_time).seconds
>>> print(seconds)
22

8、根据给定的时间戮,返回一个date对象。

>>> datetime.date.fromtimestamp(1111111111)
datetime.date(2005, 3, 18)

9、datetime转换为str。如果要将datetime对象格式化为字符串显示给用户,就需要通过strftime()转换。

>>> cur_time = datetime.datetime.now()
>>> cur_time.strftime('%Y-%m-%d %H:%M:%S')
'2020-02-01 11:50:24'

10、str转换为datetime。将用户输入的字符串格式的日期和时间通过datetime.strptime()转换为datetime。

>>> day = datetime.datetime.strptime('2020-01-31 18:18:18','%Y-%m-%d %H:%M:%S')
>>> print(day)
2020-01-31 18:18:18
>>> type(day)
<class 'datetime.datetime'>

小结

本文包含了编码过程中datetime模块使用到的简单实例。datetime模块更多使用方法参考:https://docs.python.org/3/library/datetime.html

[ Python入门教程 ] Python中日期时间datetime模块使用实例的更多相关文章

  1. [ Python入门教程 ] Python中日志记录模块logging使用实例

    python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到 ...

  2. [ Python入门教程 ] Python中JSON模块基本使用方法

    JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式,Python标准库中的json模块提供了一种简单的方法来编码和解码JSON格式的数据.用于完成字符串和p ...

  3. boost.python入门教程 ----python 嵌入c++

    Python语言简介 Python是一种脚本语言.以开放的开发接口和独特的语法著称.尽管Python在国内引起注意只有几年的时间,但实际上Python出现于上世纪90年代(据www.python.or ...

  4. [ Python入门教程 ] Python字典数据类型及基本操作

    字典是Python中重要的数据类型,字典是由"键-值"对组成的集合,"键-值"对之间用逗号隔开,包含在一对花括号中.字典中的"值"通过&qu ...

  5. [ Python入门教程 ] Python的控制语句

    Python控制语句由条件语句.循环语句构成.控制语句根据条件表达式控制程序的流转.本章将介绍Python中控制语句的基本语法. 条件判断语句 (1)if条件语句 if语句用于检测某个条件是否成立.如 ...

  6. [ Python入门教程 ] Python基础语法

    Python的语法非常简练,因此用Python编写的程序可读性强.容易理解.本章将介绍Python的基本语法和概念. Python文件类型 1.源代码.Python的源代码的扩展名以py结尾,可直接运 ...

  7. [ Python入门教程 ] Python文件基本操作

    本文将python文件操作实例进行整理,以便后续取用. 文件打开和创建 Python中使用open()函数打开或创建文件.open()的声明如下: open(name[, mode[, bufferi ...

  8. [ Python入门教程 ] Python文件基本操作_shutil模块

    shutil模块是对os模块中文件操作的补充,提供文件和目录的移动.复制.打包.压缩.解压等功能 shutil常用函数   shutil.copyfile(src, dst)   复制文件, 如果ds ...

  9. [ Python入门教程 ] Python生成随机数模块(random)使用方法

    1.使用randint(a,b)生成指定范围内的随机整数.randint(a,b)表示从序列range([a,b])中获取一个随机数,包括b. >>> random.randint( ...

随机推荐

  1. 什么时候用for循环什么时候用while循环?

    简述 for循环和while循环最大的区别在于[循环的工作量是否确定],for循环就像空房间依次办理业务,直到把[所有工作做完]才下班.但while循环就像哨卡放行,[满足条件就一直工作],直到不满足 ...

  2. JWT实现分布式Session

    JWT是什么 JWT一看就是简称,它的全称JSON Web Token,从字面上我们看出 1.数据是JSON格式 2.用于Web应用 3.是一个Token,也就是一个令牌方式 看看官方的说明,它定义了 ...

  3. 解析GMT+N时区,返回日期类型

    涉及到正则表达式,时区转换. /** * * 按格式 yyyy-MM-dd HH:mm:ss 以指定GMT时区进行解析,返回对应的当前系统时区当地时间. * @param dateString  格式 ...

  4. 使用SonarQube+Eclipse来分析python代码

    背景 最近在项目中推广集成测试的理念以及相关工具,在jenkins中集成sonar去分析项目的java代码的时候,意外的发现,sonarqube上还有对应python的插件,而自己写的测试工具大部分都 ...

  5. mysqldump主从复制

    一,主从复制条件 1,开启binlog功能2,主库建立同步账号3,从库配置master.info(change mast..)4,start slave复制开关知识点:####1,  3个线程,主库i ...

  6. 从零开始のcocos2dx生活(十一)TableView

    目录 简述 主要变量 主要方法 setVerticalFillOrder reloadData cellAtIndex updateCellAtIndex insertCellAtIndex remo ...

  7. 洛谷$P1345\ [USACO5.4]$ 奶牛的电信$Telecowmunication$ 网络流

    正解:最小割 解题报告: 传送门$QwQ$ $QwQ$好久没做网络流了来复健下. 这个一看就很最小割趴?考虑咋建图?就把点拆成边权为$1$的边,然后原有的边因为不能割所以边权为$inf$. 然后跑个最 ...

  8. LibreOJ6279. 数列分块入门 3 题解

    题目链接:https://loj.ac/problem/6279 题目描述 给出一个长为 \(n\) 的数列,以及 \(n\) 个操作,操作涉及区间加法,询问区间内小于某个值 \(x\) 的前驱(比其 ...

  9. mysql索引最佳实践

    索引最佳实践使用的表CREATE TABLE `employees` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(24) NOT ...

  10. JS单元测试及原理

    单元测试 单元测试是指对软件中的最小可测试单元进行检查和验证,通过单元测试可以检测出潜在的bug,还可以快速反馈功能输出,验证代码是否达到预期,也可以保证代码重构的安全性. 有这样一个方法: let ...