Python基础模块:datetime模块

datetime介绍:

datetime是Python处理日期和时间的标准库。

它包含了五个类:datetime,date,time,timedelta, tzinfo

datetime数据对象:使用strptime把字符串日期转变为此对象,可以使用datetime里的一些方法和属性,比如date(),time(),year,month,day,strftime(),replace()等。

导入语句:from datetime import datetime,date,time,timedelta, timezone,把所有类全都都导入。

如果只导入包名:import datetime,使用的时候必须datetime.datetime,datetime.time,datetime.date

其它时间相关的包:pytz,tzlocal,calendar

                                  datetime类                                  
方法名 作用 示例 结果
strptime(字符串,日期格式) 把字符串日期转换成datetime对象的实例
转换后的格式可以使用datetime类方法
datetime.strptime('2018-01-18 06:25:38.22222',"%Y-%m-%d %H:%M:%S.22222") 2018-01-18 06:25:38
strftime(自定义格式) 自已定显示格式,datetime实例可以使用
dd=datetime.strptime('2018-5-6','%Y-%m-%d')

print(dd.year)

2018
combine(date,time) 根据date和time,创建一个datetime对象 datetime.combine(date(2018,12,1),time(12,10,3)) 2018-12-01 12:10:03
fromtimestamp(时间戳[,时区])
把时间戳转换成datetime对象

缺省时区显示计算机当前时区

datetime.fromtimestamp(441188) 1970-01-06 10:33:08
utcfromtimestamp(时间戳)
时间戳参数必须

把时间戳转换成UTC标准时区的datetime对象

datetime.utcfromtimestamp(441188) 1970-01-06 02:33:08
timestamp(datetime对象) 把datetime对象转换成时间戳
dd=datetime.strptime('2018-5-6','%Y-%m-%d')

datetime.timestamp(dd)

1525564800.0
timetuple(datetime对象) 返回struc_time格式的元组 datetime.timetuple(datetime.now()) time.struct_time(tm_year=2018, tm_mon=1, tm_mday=24, tm_hour=7, tm_min=44, tm_sec=17, tm_wday=2, tm_yday=24, tm_isdst=-1)
now(时区)
获取当前系统datetime格式时间

缺省不带时区,返回的是本机时区

datetime.now() 2018-01-19 11:06:03.903022
utcnow()
获取当前系统datetime格式时间

缺省不带时区,返回的是标准时区

datetime.utcnow() 2018-01-19 03:06:03.903022
astimezone(timezone格式)
带utc格式的时区转换时区

它会改变原datetime时间的时区


datetime_utc = datetime.utcnow().replace(tzinfo=timezone.utc)

print(datetime_utc.astimezone(timezone(timedelta(hours=8))))

2018-02-01 15:49:49.578894+08:00
today()
获取当前系统datetime格式时间

和不带时区的now()结果一样

datetime.today() 2018-01-19 03:06:03.903022
replace(实参) 改变datetime时间对象的属性值 datetime.now().replace(year=2002,month = 11) 2002-11-19 04:04:10.917801
datetime格式对象的属性
date()--日期

year--年

month--月

day--天

time()--时间

hour--小时

minute--分钟

second--秒

microsecond--微秒

resolution--当前时间格式的最小单位

tzinfo--时区


print(datetime.now().date())

print(datetime.now().year)
print(datetime.now().month)
print(datetime.now().day)
print(datetime.now().time())
print(datetime.now().hour)
print(datetime.now().second)
print(datetime.now().minute)
print(datetime.now().microsecond)
print(datetime.now().resolution)
print(datetime.utcnow().tzinfo)


2018-01-19

2018
1
19
04:13:32.181138
4
32
13
181163
0:00:00.000001
None

-
计算两个时间的差值,结果分date和time

两个时间必须是datetime对象

最小可以支持到微秒

n = datetime(10,10,10,10,10)
t = datetime(8,8,8,8,8)
print(n-t)
793 days, 2:02:00
                          date类                          
方法名 作用 示例 结果
date(年,月,日)   
年月日不可缺省

把年月日参数转换成date格式

转换完可以使用date格式对象的属性

date(2002,2,2) 2002-02-02
date格式对象的属性
year--年

month--月

day--天


date(2002,2,2).year

date(2002,2,2).month

date(2002,2,2).day

2002
2
2
timetupel(date对象) 返回struc_time格式元组
s = date(1,2,1)

timetuple(s)

time.struct_time(tm_year=1, tm_mon=2, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=32, tm_isdst=-1)
strftime(date对象,格式符)
返回指定格式化符号的字符串

格式化符号%Y,%m,%d,%y,%w等和天数相关格式

具体参照time模块的格式说明


s = date(1,2,1)

date.strftime(s,"%y,%W,%Y,%m,%d")

01,05,1,02,01
replace(实参) 改变date时间对象的属性值 s.replace(day = 9) 0001-02-09
toordinal() 计算现在时间距离1年1月1日多少天 s.toodinal() 32
weekday() 返回星期,星期一为0,星期日为6 s.weekday() 3
iosweekday() 返回星期,星期一为1,星期日为7 s.iosweekday() (1, 5, 4)
iosformat() 返回格式为,“年-月-日”的日期 s.iosformat() 0001-02-01
ctime() 返回字符串型日期 s.ctime() Thu Feb  1 00:00:00 0001
                          time类                          
方法名 作用 示例 结果
time(小时,分,秒,毫秒)
返回一个time格式的时间

缺省参数,显示00:00:00

time(12,35,21,965) 12:35:21.000965
time属性。
返回时间的小时、分钟、秒、毫秒

hour--小时

minute--分钟

second--秒

microsecond--微秒

tzinfo--时区


t = time(12,35,21,965)

print(t.hour)

print(t.minute)

print(t.second)

print(t.microsecond)

print(t.tzinfo)


12
35
21
965

None

replace(实参)
可以替换指定部分time格式的时间

hour,minute,second,microsecond,tzinfo

print(t.replace(minute=3)) 12:03:21.000965
isoformat() 返回一个‘HH:MM:SS.%f'格式的时间字符串 print(t.isoformat()) 12:35:21.000965
strftime(time时间格式,字符串格式符) 将时间格式转变成指定字符串格式
print(t.strftime("Hours:%H,%M,%S"))

print(time.strftime(t,"Hours:%H,%M,%S"))

Hours:12,35,21
                                    timedelta类                                 

timedalte 对象表示两个时间的差值,可以指定天、时间、周。

*实际上就是datetime的-号运算结果。使用timedelta格式化以后重新与datetime对象进行加、减运算,计算出指定日期。
*构造函数:timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

属性 说明 示例 结果
min 显示timedelta支持的最小时间差 timedelta.min
-999999999 days, 0:00:00

max 显示timedelta支持的最大时间差 timedelta.max 999999999 days, 23:59:59.999999
resolution 显示timedelta支持最小时间单位 timedelta.resolution 0:00:00.000001
timedelta参数
days--天

hours--小时

seconds--秒

microseconds--微秒

milliseconds--毫秒

weeks--周

print(timedelta(days = 1))
print(timedelta(hours = 1))
print(timedelta(seconds = 1))
print(timedelta(microseconds = 1))
print(timedelta(milliseconds = 1))
print(timedelta(weeks = 1))
1 day, 0:00:00
1:00:00
0:00:01
0:00:00.000001
0:00:00.001000
7 days, 0:00:00
timedelta对象属性
days--天

seconds--秒

microseconds--微秒


delta = timedelta.max

print(delta.days)

print(delta.seconds)

print(delta.microseconds)


999999999
86399
999999

                                    timezone类                                 
utc 获取标准时区0
astimezone(timedelta格式) 改变时区

标准变换时区语句:

utc_date= datetime.utcnow().replace(tzinfo=timezone.utc)
print(utc_date)

bj_utc = utc_date.astimezone(timezone(timedelta(hours = 8)))
print(bj_utc)

结果:

2018-02-01 08:23:19.612199+00:00
2018-02-01 16:23:19.612199+08:00

例子:

一、当前时间加一个月

now_time = datetime.now()

next_time = now_time.replace(month = now_time.month+1)

原文地址:http://blog.51cto.com/yishi/2067818

时间: 2024-10-14 20:47:02

Python基础模块:datetime模块的相关文章

python基础31[常用模块介绍]

python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1)python运行时服务 * copy: copy模块提供了对复合(compound)对象(list,tuple,dict,custom class)进行浅拷贝和深拷贝的功能. * pickle: pickle模块被用来序列化python的对象到bytes流,从

Python基础5-常用模块

本节大纲 模块介绍 time &datetime模块 random os sys shutil shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,就是实现某种或者某类功能代码的合集. 类似于函数式编程和面向过程编程,函数式编程完成一个功能,其他代码可以调用,提供了代码的重用性跟代码间的耦合.对于一个复杂的功能,可能需要多个函数才能完成,多个.py文件的代码集合就叫做模块. 如:os是系统相关的模块:f

python中的datetime模块

Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致.相比于time模块,datetime模块的接口则更直观.更容易调用.今天就来讲讲datetime模块. datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR,分别表示datetime所能表示的最小.最大年份.其中,MINYEAR = 1,MAXYEAR = 9999.(

Day5 - Python基础5 常用模块学习

Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,

Python 基础之re 模块

Python 基础之大话 re 在使用re模块中主要会用到一下几个方法: re.match() #从头匹配一个字符串 re.search() #浏览全部字符串,匹配第一个符合规则的字符串 re.findall() #将匹配到的所有内容都放在一个列表中 #re.finditer() re.split() re.sub() 好,先简单的介绍一下re 模块中的基础知识: 1.元字符 . ^ $ * + ? {} []  | () \  , 2.\的功能:         #1.反斜杠后面跟元字符去除特

python基础,导入模块,if语句,while语句

python基础 python代码 变为字节码 变为机器码 最后执行执行'文件名.py'文件时出现的'文件名.pyc'文件为字节码 缓存机制 使用pycharm的时候在文件最开始添加下面这两行代码,中文部分为解释#!/user/bin/env python 用执行下面的命令#-*- coding:utf-8 -*- 使用的编码为UTF-8 为了不每次编写文件的时候都需要添加这两行代码,我们可以在pycharm中设置py文件的基础代码,就是创建py文件就会生成的代码 链接 import lib #

2015/9/15 Python基础(12):模块和包

模块是用来组织 Python 代码的方法,而包则是用来组织模块的. 当代码量很大时,我们一般会把代码分成几个有组织的代码段,然后每个代码段之间有一定的联系.代码单之间是共享的,所以Python允许调入一个模块,允许使用其他模块的属性利用之前的工作成果,实现代码重用.那些自我包含并且有组织的代码片段就是模块(module),将其他模块中属性附加到你的模块中的操作较导入(import) 模块是逻辑上的说法,而它们在物理层是一个个独立的文件,模块的文件名就是模块的名字加拓展名.py.与其他可以导入类的

python基础知识8——模块1——自定义模块和第三方开源模块

模块的认识 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 如:os 是系统相关的模块:file是文件操作相关的模块 模块分为三种: 自定义模块 内置模块 第三方开源模块 自定义模块 1.定义模块 2.导入模块 Python之所以应用越来越广泛,在一定程度上也

[Python基础]009.os模块(1)

os模块(1) 介绍 os 常量 文件目录操作 文件属性操作 遍历文件夹 介绍 os模块是系统服务应用程序接口,是Python最常用的模块之一. os模块包含了对文件和文件夹的操作,操作系统相关的操作等. 以及os.path模块,主要处理路径操作. os 常量 os.linesep 换行符,Unix为 \n ,Win32为 \r\n os.sep 文件路径分隔符,Unix为 /,Win32为 \ os.pathsep 多个文件路径间的分隔符,Unix为 :,Win32为 ; os.curdir

Python基础之常用模块(三)

1.configparser模块 该模块是用来对文件进行读写操作,适用于格式与Windows ini 文件类似的文件,可以包含一个或多个节(section),每个节可以有多个参数(键值对) 配置文件的格式如下: [DEFAULT] serveralagas = 24 asdgasg = yes sdg = 123 [hello] user = hd [world] what = fuck 这种文件格式就像是一个大字典,每个标题就是一个key,字典中嵌套着字典 还有需要注意的是,[DEFAULT]