前言

datetime是python的内置模块,用来处理日期和时间。

该模块常用的类有:

类名 功能说明
date 日期对象
time 时间对象
datetime 日期时间对象
timedelta 时间间隔
tzinfo 时区信息对象

本文旨在讲解datetime模块中datetime类的使用方法。datetime对象是 date 与 time 的结合体,涵盖了datetime对象的所有信息。

一、导入datetime

第一步,先导入datetime类:

from datetime import datetime

二、构造datetime对象

datetime(year,month,day,hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

参数范围:

  • MINYEAR <= year <= MAXYEAR

  • 1 <= month <= 12

  • 1 <= day <= 指定年月的天数

  • 0 <= hour < 24

  • 0 <= minute < 60

  • 0 <= second < 60

  • 0 <= microsecond < 1000000

实例:

datetime(2019,12,6,13,30,50)
# 输出 : datetime.datetime(2019, 12, 6, 13, 30, 50)

三、类方法

  1. datetime.today()

返回本地区当前日期时间datetime对象

datetime.today()
# 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
  1. datetime.now(tz=None)

返回本地区当前日期时间datetime对象,可以添加时区tz 默认无时区时,返回结果和datetime.today()一致

datetime.now()
# 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
  1. datetime.utcnow()

返回UTC(同格林尼治时间)日期时间datetime对象

datetime.now()
# 输出 : datetime.datetime(2019, 12, 9, 13, 27, 54, 693978)
  1. datetime.fromtimestamp(timestamp, tz=None)

返回给定时间戳的datetime对象,时区默认为空,返回当地日期时间,也可以指定时区

datetime.fromtimestamp(1575877756)
# 输出 : datetime.datetime(2019, 12, 9, 15, 49, 16)

想获取当前时间戳,可通过time模块的time方法实现:

import time
time.time()
# 输出:1575877756.4673727
  1. datetime.utcfromtimestamp(timestamp)

返回给定时间戳的datetime对象,日期时间默认为UTC(同格林尼治时间)

datetime.fromtimestamp(1575877756)
# 输出 : datetime.datetime(2019, 12, 9, 7, 49, 16)
  1. datetime.fromordinal(ordinal)

输入参数为天数,返回从公元0年开始计数的年、月、日datetime对象 比如输入参数为365,则返回1-12-31

datetime.fromordinal(365)
# 输出 : datetime.datetime(1, 12, 31, 0, 0)
  1. datetime.combine(date, time, tzinfo=self.tzinfo)

拼接datetime对象,形成一个新的datetime对象 可以输入时区参数,否则默认为原time的时区

date_ = datetime.today().date()
time_ = datetime.today().time()
datetime.combine(date_,time_)
# 输出 : datetime.datetime(2019, 12, 9, 16, 12, 56, 914484)
  1. datetime.strptime(date_string, format)

将格式化日期时间字符串,转换为datetime对象,可以转换日期、时间、日期时间

datetime.strptime('2019-11-05','%Y-%m-%d')
# 输出 : datetime.datetime(2019, 11, 5, 0, 0)
datetime.strptime('09:30:50','%H:%M:%S')
# 输出 : datetime.datetime(1900, 1, 1, 9, 30, 50)
datetime.strptime('2019-11-05 09:30:50','%Y-%m-%d %H:%M:%S')
# 输出 : datetime.datetime(2019, 11, 5, 9, 30, 50)

四、实例方法

  1. datetime.date()

返回date对象

d = datetime(2019,12,6,13,30,50)
d.date()
# 输出 : datetime.date(2019, 12, 6)
  1. datetime.time()

返回time对象

d = datetime(2019,12,6,13,30,50)
d.time()
# 输出 : datetime.time(13, 30, 50)
  1. datetime.timestamp()

对于给定的 datetime对象返回时间戳

d = datetime(2019,12,6,13,30,50)
d.timestamp()
# 输出 : 1575610250.0
  1. datetime.weekday()

返回星期几,星期一为 0,星期天为 6

d = datetime(2019,12,6,13,30,50)
d.weekday()
# 输出 : 4
  1. datetime.isoweekday()

返回星期几,星期一为 1,星期天为 7

d = datetime(2019,12,6,13,30,50)
d.isoweekday()
# 输出 : 5
  1. datetime.isocalendar()

返回数组:(年、第多少周、星期几)

d = datetime(2019,12,6,13,30,50)
d.isocalendar()
# 输出 : (2019, 49, 5)
  1. datetime.ctime()

返回日期时间的字符串表示

d = datetime(2019,12,6,13,30,50)
d.ctime()
# 输出 : 'Fri Dec  6 13:30:50 2019'
  1. datetime.strftime(date_string, format)

datetime对象转换为格式化字符串

d = datetime.today()
datetime.strftime(d,'%Y-%m-%d %H:%M:%S')
# 输出 : '2019-12-09 16:32:18'
  1. datetime.toordinal()

返回从公元0年到指定datetime的天数

d = datetime(2019,12,6,13,30,50)
d.toordinal()
# 输出 : 737399

五、类实例属性

  1. datetime.year

返回给定datetime对象的年份

d = datetime(2019,12,6,13,30,50)
d.year
# 输出 : 2019
  1. datetime.month

返回给定datetime对象的月份

d = datetime(2019,12,6,13,30,50)
d.month
# 输出 : 12
  1. datetime.day

返回给定datetime对象的天数(一个月的某天)

d = datetime(2019,12,6,13,30,50)
d.day
# 输出 : 6
  1. datetime.hour

返回给定datetime对象的小时数(一天的某时)

d = datetime(2019,12,6,13,30,50)
d.hour
# 输出 : 13
  1. datetime.minute

返回给定datetime对象的分钟数(一小时的某分)

d = datetime(2019,12,6,13,30,50)
d.minute
# 输出 : 30
  1. datetime.second

返回给定datetime对象的秒数(一分钟的某秒)

d = datetime(2019,12,6,13,30,50)
d.second
# 输出 : 50
  1. datetime.microsecond

返回给定datetime对象的毫秒数(一分钟的某秒)

d = datetime(2019,12,6,13,30,50,3000)
d.microsecond
# 输出 : 3000
  1. datetime.tzinfo

返回datetime对象的时区,前提是在创建datetime对象时需传入tzinfo参数,如果没有传入则返回值为None

# 获取一个含有时区的datetime对象
import pytz
sh = pytz.timezone('Asia/Shanghai')
d = datetime(2018, 11, 1, hour=8, tzinfo=sh)
d.tzinfo
# 输出 : <DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>

参考:https://www.jianshu.com/p/7beff16c379d

六、结论

本文介绍了datetime模块中datetime类的各种方法和属性,代码案例丰富,分门别类,方便使用时查找。

备注:公众号菜单包含了整理了一本AI小抄非常适合在通勤路上用学习

往期精彩回顾2019年公众号文章精选适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(第一部分)备注:加入本站微信群或者qq群,请回复“加群”加入知识星球(4500+用户,ID:92416895),请回复“知识星球”

喜欢文章,点个在看

30例 | 一文搞懂python日期时间处理相关推荐

  1. python输入时间_一文搞懂python日期时间处理

    前言 datetime是python的内置模块,用来处理日期和时间. 该模块常用的类有: 本文旨在讲解datetime模块中datetime类的使用方法. datetime对象是 date 与 tim ...

  2. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  3. python中gbk字符原因报错_不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码...

    原标题:不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码 程序员都自视清高,觉得自己是创造者,经常鄙视不太懂技术的产品或者QA.可悲的是,程序员之间也相互鄙视,程序员的鄙视链流传甚广, ...

  4. 一文搞懂 Python 的 import 机制

    一.前言 希望能够让读者一文搞懂 Python 的 import 机制 1.什么是 import 机制? 通常来讲,在一段 Python 代码中去执行引用另一个模块中的代码,就需要使用 Python ...

  5. 不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码

    程序员都自视清高,觉得自己是创造者,经常鄙视不太懂技术的产品或者QA.可悲的是,程序员之间也相互鄙视,程序员的鄙视链流传甚广,作为一个Python程序员,自然最关心的是下面这幅图啦 我们项目组一值使用 ...

  6. 一文搞定Mysql日期时间函数

    总第184篇/张俊红 日期和时间函数部分也是我们日常工作中使用频率比较高的一部分.这一篇我们主要讲讲Mysql里面的日期时间相关的函数,不同数据库之间基本相同,只会有个别函数的差异.大家掌握一个数据库 ...

  7. sql中当前日期加2个月_一文搞定Mysql日期时间函数

    总第184篇/张俊红 日期和时间函数部分也是我们日常工作中使用频率比较高的一部分.这一篇我们主要讲讲Mysql里面的日期时间相关的函数,不同数据库之间基本相同,只会有个别函数的差异.大家掌握一个数据库 ...

  8. 一文搞懂Python Unittest测试方法执行顺序

    Unittest unittest大家应该都不陌生.它作为一款博主在5-6年前最常用的单元测试框架,现在正被pytest,nose慢慢蚕食. 渐渐地,看到大家更多的讨论的内容从unittest+HTM ...

  9. 一文搞懂python threading(多线程)模块

    命令提示符如何打开并运行python文件链接 一. 1.active_count() , activeConut() 方法 功能 active_count() , activeConut() 返回处于 ...

最新文章

  1. 两成开发者月薪超 1.7 万、算法工程师最紧缺! | 中国开发者年度报告
  2. 对抗新冠也用「梯度下降」,进化生物学家靠这个预测病毒进化方向
  3. gulp.js 的安装以及使用
  4. LeetCode 53. 最大子序和(Maximum Subarray)
  5. android设置title_所见即所得的 Android 自动化神器,用 Automate 一键收藏文章
  6. 软件工程-c语言--基于at89c51单片机c语言编写的计算器,基于AT89C1单片机C语言编写的计算器.doc...
  7. Linux基础(管道符、重定向、转义字符与环境变量)
  8. javah命令 C Header and Stub File Generator
  9. mysql做报表分析_mysqlreport解析
  10. USB OTG简单介绍
  11. Web开发必须知道的知识点
  12. 金融级IT架构-数字银行的云原生架构解析
  13. html顺序播放mp3,完美:按顺序播放mp3的方法是什么?如何更改U盘中歌曲的播放顺序...
  14. 5.3 Hessenberg法求特征值
  15. 阿里天池项目:淘宝电商数据分析(mysql)
  16. 共享文件与打印机设置
  17. 【python】pyi文件
  18. Oracle分析函数(每组数据取一条记录)
  19. [算法课]全面翻新计划!第十二周全解
  20. Eclipse 使用 Maven 构建动态 Web 工程,默认无 java 目录的解决方法

热门文章

  1. 浅入深出Vue:发布项目
  2. eclipse提交Git时忽略文件
  3. STM32下载库资料
  4. HDU 2035.人见人爱A^B-快速幂
  5. Android开发(七)——判断网络状态
  6. Flash的层叠顺序问题(z-index)
  7. 毕业论文摘要的书写方法和技巧
  8. 计算机组成原理第一阶段测试,计算机组成原理随堂测验1附答案
  9. 用C语言写一个球的程序,12个球的程序.....
  10. linux判断压缩文件类型,【shell】判断压缩包类型并解压