一文带你吃透Python中的日期时间模块
作者:Charge8 发布时间:2023-01-11 19:33:32
Python 提供了 日期和时间模块用来处理日期和时间,还可以用于格式化日期和时间等常见功能。
时间间隔是以秒为单位的浮点小数。
每个时间戳都以自从 1970 年 1 月 1 日午夜(历元)经过了多长时间来表示。
一、time模块使用
Time 模块包含了大量内置函数,既有时间处理的,也有转换时间格式的。
1、获取当前时间
import time
# 获取时间戳 返回的是浮点型
# 作用 用来计算时间差
print(time.time()) # 1676775733.1080997
# 获取当地时间 返回的是结构化时间
print(time.localtime())
# 获取UTC时间 返回的还是结构化时间 比中国时间少8小时
print(time.gmtime())
1.1 时间元组
时间元组:Python函数用一个元组装起来的9组数字处理时间。
上面也就是 struct_time 元组。这种结构具有如下属性:
2、格式化时间
2.1 获取格式化的时间
import time
# 获取本地时间
localtime = time.asctime(time.localtime(time.time()))
#localtime = time.asctime(time.localtime())
print("本地时间为 :", localtime)
## 本地时间为 : Mon Feb 20 20:49:10 2023
2.2 格式化时间转换
使用 time 模块的 strftime 方法来格式化日期,通过 strptime方法来格式化字符串。
# 时间转换为格式字符串
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
# 格式字符串转换为时间
str = "2023-02-14 05:20:00"
print(time.strptime(str, "%Y-%m-%d %H:%M:%S"))
# 格式字符串转换为时间戳
print(time.mktime(time.strptime(str, "%Y-%m-%d %H:%M:%S")))
Python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
二、datetime模块
datetime模块提供了对时间和日期进行操作的功能。
datatime模块通过date类、time类、datetime类、timedelta类、timezone类等来获取或者操作时间、日期。
与time模块相比,datetime模块提供的接口更直观、易用,功能也更加强大。
1、获取当前时间
from datetime import datetime
# 获取时间 获取当前时间 并且返回的是格式化字符时间
now = datetime.now()
print(now)
print(type(now))
print(now.year)
print(now.month)
print(now.day)
print(now.hour)
print(now.minute)
print(now.second)
print(now.microsecond)
# 手动指定时间
print(datetime(2023, 2, 20, 20, 50, 00))
# 替换某个时间单位的值
print(now.replace(year=2024))
d1 = datetime.now()
d2 = datetime(2024, 2, 20, 20, 50, 00)
print(d1 - d2)
2、格式化时间
(1)datetime 转 字符串,通过 strftime()函数。
from datetime import datetime
now = datetime.now()
# 强制转换字符串
print(str(now))
# 格式化日期 转换 字符串
print(now.strftime("%Y/%m/%d %H:%M:%S"))
print(now.strftime("%Y-%m-%d %H:%M:%S"))
print(now.strftime("%Y/%m/%d"))
print(now.strftime("%Y-%m-%d"))
(2)字符串 转 datetime对象,通过 strptime()函数。
dates = ['2022-02-20 20:23:35', '2024-02-20 20:23:35']
datelist = [datetime.strptime(i, "%Y-%m-%d %H:%M:%S") for i in dates]
print(datelist)
# [datetime.datetime(2022, 2, 20, 20, 23, 35), datetime.datetime(2024, 2, 20, 20, 23, 35)]
(3)parse() 解析字符串
将字符串形式的日期解析成 datetime对象。
# 需要安装 pip install python-dateutil
from dateutil.parser import parse
print(parse('2/20/2023'))
print(parse('2023-2-20'))
print(parse('2023.2.20'))
print(parse('2023 2 4'))
print(parse('2023, 6, 2'))
3、计算时间间隔
时间间隔 timedelta
import datetime
now = datetime.datetime.now()
print(now)
# 3天后
dt1 = now + datetime.timedelta(3)
print(dt1)
# 3天前
dt2 = now + datetime.timedelta(-3)
print(dt2)
# 3小时30秒后
dt3 = now + datetime.timedelta(hours=3, seconds=30)
print(dt3)
三、calendar模块
calendar模块的函数都是日历相关的,例如打印某月的字符月历。
calendar 特点:
calendar 模块是基于datetime.date.weekday()对计算每一周的周数
calendar 默认星期一是每一周的第一天,星期天是一周的最后一天
calendar 提供calendar.setfirstweeksday()来更改指定星期几为一周的第一天
1、打印日历
import calendar
# 打印指定某年的月历
print(calendar.month(2023, 5))
# 打印2023年历
# print(calendar.calendar(2023))
上面示例了一些常见的操作,下面参考文章(感谢博主)中详细列举的各模块之间的属性和方法,这里就不重复造轮子啦。
来源:https://blog.csdn.net/qq_42402854/article/details/129131487


猜你喜欢
- 在操作系统的文件中,还存在着一种我们可以自己定义的文件属性。这些属性不是保存在文件内容中,也不是直接可以通过 ls -al 所能看到的内容。
- python中的class_static的@classmethod的使用 classmethod的使用,主要针对的是类而不是对象,在定义类的
- linux下使用python打开terminal时报错场景一:在jenkins上执行自动化任务,测试任务执行时使用jenkins用户(有su
- 在使用Python处理数据时,经常需要对数据筛选。这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列。data原始
- 【导语】:对自己写的冗长代码,想重构但又无思路?小编整理了系列介绍python代码重构优化的方法,助你一臂之力。编写干净的 Pythonic
- 我开发了一个程序,数据在服务器端处理,通过ODBC和Access通讯。在实际应用中,调用后台存储过程不方便,花费时间也长。有什么好办法可以在
- 本文介绍sqlite数据库,如何使用sqlite3包操作轻量级关系型数据库。sqlite概述sqlite是嵌入式关系型数据库引擎,官方描述为
- 想要根据django中的模型和配置生成SQL语句,需要先进行一定的设置:首先需要在你的app文件夹中进入setting.py文件,里面有一个
- 1.字符串转二进制数组 string content="这是做个测试!"; System.Text.UnicodeEnc
- 本文实例讲述了Python基于辗转相除法求解最大公约数的方法。分享给大家供大家参考,具体如下:之前总结过一次高德纳TAOCP中的最大公约数求
- 快排是python经典算法之一。1、下面讲解的是什么是快排和快排的图示。2、快排是一种解决排序问题的运算方法。3、快排的原理:在数组中任意选
- 1提取 PDF 内容# pip install PyPDF2 安装 PyPDF2import PyPDF2from PyPDF2
- 在之前给大家分享过这篇文章:CentOS 7.0下使用yum安装mysql的方法详解,小编觉得不够详细,今天给大家通过本文给大家做个补充,感
- 本文研究的主要是Python使用pickle模块存储数据报错解决方法,以代码的形式展示,具体如下。首先来了解下pickle模块pickle提
- 导言篇我的python环境是:python3.6.5这里我选择的GUI编程包是:tkintertkinker在python2.5以后就是自带
- 完整代码<!doctype html><html lang="en"><head>
- 效果图:代码如下:<!DOCTYPE html><html lang="en"><head
- 一、选取网址进行爬虫本次我们选取pixabay图片网站url=https://pixabay.com/二、选择图片右键选择查看元素来寻找图片
- defaultdict 主要用来需要对 value 做初始化的情形。对于字典来说,key 必须是 hashable,immutable,un
- 一、数据类型在tf中,数据类型有整型(默认是int32),浮点型(默认是float32),以及布尔型,字符串。二、数据类型信息①.devic