pythondatetimetime
❶ python中处理时间的几种方法小结
python中的时间模块主要有time, datetime。
I, time模块
time模块中包含了四种时间格式:
float格式,即给定时间相对于epoch增加的秒数
tuple格式,一个九元组 (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
string格式,'Mon Feb 6 15:00:06 2012'
format格式,以指定的格式生成的时间
针对这几种时间格式,time模块提供了函数在格式之间相互转换。
asctime(tuple) ->string
ctime(float) ->string
gmtime(float) ->tuple
localtime(float) ->tuple
mktime(tuple) ->float
strftime(format, tuple) ->format string
strptime(formatstring, format) ->tuple
time() -> float
上述函数中,除了time()函数直接返回当前时间相对于epoch的秒数外,其他函数都要求有时间的输入,如果没有输入,则默认使用当前时间。
另外,strftime和strptime中的format使用下面的格式:
%a 英文星期简写
%A 英文星期的完全
%b 英文月份的简写
%B 英文月份的完全
%c 显示本地日期时间
%d 日期,取1-31
%H 小时, 0-23
%I 小时, 0-12
%m 月, 01 -12
%M 分钟,1-59
%j 年中当天的天数
%w 显示今天是星期几
%W 第几周
%x 当天日期
%X 本地的当天时间
%y 年份 00-99间
%Y 年份的完整拼写
%S 秒(00-59)
除了上述的时间转换函数之外,模块还提供了下面的函数:
clock() 返回进程的创建时间,以秒计数的float
sleep(float) sleep一段时间,以秒计数
tzset() 更改时区
II, datetime
datetime模块定义了下面这几个类:
datetime.date:表示日期的类。常用的属性有year, month, day;datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;datetime.datetime:表示日期时间。datetime.timedelta:表示时间间隔,即两个时间点之间的长度。datetime.tzinfo:与时区有关的相关信息。(这里不详细充分讨论该类,感兴趣的童鞋可以参考python手册)
注 :上面这些类型的对象都是不可变(immutable)的。
下面详细介绍这些类的使用方式。
date类
date类表示一个日期。日期由年、月、日组成(地球人都知道~~)。date类的构造函数如下:
class datetime.date(year, month, day):参数的意义就不多作解释了,只是有几点要注意一下:
year的范围是[MINYEAR, MAXYEAR],即[1, 9999];month的范围是[1, 12]。(月份是从1开始的,不是从0开始的~_~);day的最大值根据给定的year, month参数来决定。例如闰年2月份有29天;
date类定义了一些常用的类方法与类属性,方便我们操作:
date.max、date.min:date对象所能表示的最大、最小日期;date.resolution:date对象表示日期的最小单位。这里是天。date.today():返回一个表示当前本地日期的date对象;date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;datetime.fromordinal(ordinal):将Gregorian日历时间转换为date对象;(Gregorian Calendar :一种日历表示方法,类似于我国的农历,西方国家使用比较多,此处不详细展开讨论。)
❷ python date,datetime 和time的区别
1,date是日期,通常就是日历上的年月日,比较大一点的时间单位。
2,time通常就是指秒钟数,即从1970年1月1日至今进过的秒钟数。或者指一天中的时分秒,比较小一点的时间单位。就像你问别人What's
the
time,别人会告诉你几点几分,而不会告诉你年月日。
3,datetime就是年月日和时分秒,包含以上两者。
datetime
模块是用来处理日期时间的,通常是用来进行计算日期,可以很方便的使用加减运算。而time模块主要是用来处理秒钟时间的,当然这个秒钟数也可以转化成日
期,获取当前日期通常就是从这个模块获取的。不过说time时,有时候表示的也会很宽泛,因为它的词义就是时间嘛,这个不用太计较的。不过date的意义
是确定无疑的。
❸ python怎么调用时间
datetime在python中比较常用,主要用来处理时间日期,使用前先倒入datetime模块。下面总结下本人想到的几个常用功能。
1、当前时间:
>>> print datetime.datetime.now()2015-07-17 16:39:15.712000>>> print type(datetime.datetime.now())
<type 'datetime.datetime'>
返回的datetime时间格式。
2、当前日期
>>> print datetime.datetime.now().date()2015-07-17>>> print type(datetime.datetime.now().date())
<type 'datetime.date'>
3、当前时间tuple
>>> datetime.datetime.now().timetuple()time.struct_time(tm_year=2015, tm_mon=7, tm_mday=17, tm_hour=16, tm_min=51, tm_sec=26, tm_wday=4, tm_yday=198, tm_isdst=-1)
>>> datetime.datetime.now().timetuple().tm_mday17
4、时间移动(几天、几小时前后...)
使用datetime.timedelta这个方法来前后移动时间,可以用的参数有weeks,days,hours,minutes,seconds,microseconds。
>>> print datetime.datetime.now() + datetime.timedelta(days=1)2015-07-18 16:49:48.574000>>> print datetime.datetime.now() + datetime.timedelta(hours=1)2015-07-17 17:49:57.122000>>> print datetime.datetime.now() + datetime.timedelta(minutes=-30)2015-07-17 16:20:08.619000
上个月最后一天
>>> print datetime.date(day=1,month=datetime.date.today().month,year=datetime.date.today().year) - datetime.timedelta(days=1)2015-06-30
5、获取两个时间的时间差
>>> (datetime.datetime.now() - datetime.datetime.utcnow()).total_seconds()
28800.0
6、时间转化
datetime转str格式:
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")'2015-07-17 16:58:46'
str格式转datetime格式:
>>> datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")
datetime.datetime(2015, 7, 17, 16, 58, 46)
>>> print datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")2015-07-17 16:58:46>>> print type(datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S"))
<type 'datetime.datetime'>
datetime转timestamp:
>>> import time>>> now=datetime.datetime.now()>>> time.mktime(now.timetuple())1437123812.0
timestamp转datetime:
>>> datetime.datetime.fromtimestamp(1437123812.0)datetime.datetime(2015, 7, 17, 17, 3, 32)
>>> print datetime.datetime.fromtimestamp(1437123812.0)
2015-07-17 17:03:32
❹ python中import datetime是什么意思
引用datetime模块,使用其中的相关函数。
datetime模块提供了可以通过多种方式操作日期和时间的类。在支持日期时间数学运算的同时,实现的关注点更着重于如何能够更有效地解析其属性用于格式化输出和数据操作。相关功能可以参阅time和calendar模块。
有两种日期和时间的对象:“简单型“和”感知型“。
感知型对象有着用足以支持一些应用层面算法和国家层面时间调整的信息,例如时区和夏令时,来让自己和其他的感知型对象区别开来。感知型对象是用来表达不对解释器开放的特定时间信息1。
简单型对象没包含足够多的信息来明确定位与之相关的 date/time 对象。 简单型对象所代表的是世界标准时间(UTC)、当地时间或者是其它时区的时间完全取决于程序,就像一个数字是代表的是米、英里或者质量完全取决于程序一样。 简单型对象以忽略了一些现实情况的为代价使得它容易理解和使用。
对于需要感知型对象的应用,datetime对象和time对象有一个可选的时区信息属性tzinfo,这个属性可以设置给tzinfo类的子类实例。这些tzinfo对象捕获关于相对于世界标准时间(UTC)偏移、时区名字和夏令时是否有效等信息。需要注意的是,只有一个具体的tzinfo类,即由datetime模块提供的timezone类。timezone类可以代表相对于世界标准时间(UTC)固定偏移的简单时区,比如世界标准时间(UTC)自己或者北美东部时间或者东部夏令时。支持时区的详细程度取决于应用。世界各地的时间调整规则相比理性更加政治性,经常会变更。也没有一个基于世界标准时间(UTC)的标准套件适合用于所有应用。
有效的类型
classdatetime.date
一个理想化的简单型日期,它假设当今的公历在过去和未来永远有效。 属性:year,month, andday。
classdatetime.time
一个理想化的时间,它独立于任何特定的日期,假设每天一共有 24*60*60 秒(这里没有"闰秒"的概念)。 属性:hour,minute,second,microsecond, 和tzinfo。
classdatetime.datetime
日期和时间的结合。属性:year,month,day,hour,minute,second,microsecond, andtzinfo.
classdatetime.timedelta
表示两个date对象或者time对象,或者datetime对象之间的时间间隔,精确到微秒。
classdatetime.tzinfo
一个描述时区信息的抽象基类。用于给datetime类和time类提供自定义的时间调整概念(例如,负责时区或者夏令时)。
classdatetime.timezone
一个实现了tzinfo抽象基类的子类,用于表示相对于 世界标准时间(UTC)的偏移量。
❺ python中datetime怎么设置时区
1、默认情况下,pandas中的时间序列是单纯(naive)的时区,其索引的tz字段为None。
❻ python date,datetime 和time的区别
datetime和time是Python中的两个内置包,但是没有date包。
time包提供的接口与C标准库time.h基本一致。相比于time模块,datetime模块的接口则更直观、更容易调用。
time包可以直接获取Unix时间戳,
importtime
printtime.time()
#1437653274.549
而datetime可以直接获取表示当前日期的对象,
fromdatetimeimportdatetime
printdatetime.now()
#2015-07-2320:10:14.087000
❼ python中如何把datetime.datetime转换成datetime.time
用Python实现字符串和日期相互转换的方法,具体如下:这里用的分别是time和datetime函数来处理 importtime,datetime //日期转化为字符串 #datetostr //输出时间 printtime.strftime("%Y-%m-%d%X",time.localtime()) #strtodate //字符串转化为日期 t=time.strptime("2016-12-05","%Y-%m-%d") y,m,d=t[0:3] //输出时间 printdatetime.datetime(y,m,d)
❽ python中怎么把datetime类型转换成timestamp
Python3.6.4(v3.6.4:d48ecebad5,Dec182017,21:07:28)
[GCC4.2.1(AppleInc.build5666)(dot3)]ondarwin
Type"help","right","credits"or"license"formoreinformation.
>>>importtime
>>>fromdatetimeimportdatetime
>>>now=datetime.now()
>>>timestamp=int(time.mktime(now.timetuple()))
>>>timestamp
1520493295
>>>timestamp_microsecond=float('{}{:06}'.format(timestamp,now.microsecond))/1000000
>>>timestamp_microsecond
1520493295.337066
❾ 几种Python执行时间的计算方法
方法1:
import datetime
starttime = datetime.datetime.now()
#long running
#do something other
endtime = datetime.datetime.now()
print (endtime - starttime).seconds
datetime.datetime.now()获取的是当前日期,在程序执行结束之后,这个方式获得的时间值为程序执行的时间。
方法2:
start = time.time()
#long running
#do something other
end = time.time()
print end-start
time.time()获取自纪元以来的当前时间(以秒为单位)。如果系统时钟提供它们,则可能存在秒的分数。所以这个地方返回的是一个浮点型类型。这里获取的也是程序的执行时间。
方法3:
start = time.clock()
#long running
#do something other
end = time.clock()
print end-start
time.clock()返回程序开始或第一次被调用clock()以来的CPU时间。 这具有与系统记录一样多的精度。返回的也是一个浮点类型。这里获得的是CPU的执行时间。
注:程序执行时间=cpu时间 + io时间 + 休眠或者等待时间。
关于几种Python执行时间的计算方法,环球青藤小编就和大家分享到这里了,学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚。如果您还想继续了解关于python编程的学习方法及素材等内容,可以点击本站其他文章学习。
❿ python datetime处理时间
python时间处理方法datetime(),下面就举几个代码案例进行说明,代码如下:
#-*-coding:utf-8-*-
#运行环境:Python3.4
#datetime类
#datetime是date与time的结合体,包括date与time的所有信息。
#它的构造函数如下:
#datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]])
#各参数的含义与date、time的构造函数中的一样,要注意参数值的范围。
#1.datetime类定义的类属性与方法:
#datetime.min、datetime.max:datetime所能表示的最小值与最大值;
#print:datetime.max:9999-12-3123:59:59.999999
#print:datetime.min:0001-01-0100:00:00
fromdatetimeimport*
importtime
print('datetime.max:'+str(datetime.max))
print('datetime.min:'+str(datetime.min))
#datetime.resolution:datetime最小单位;
#print:datetime.resolution:0:00:00.000001
print('datetime.resolution:'+str(datetime.resolution))
#datetime.today():返回一个表示当前本地时间的datetime对象;
#print:today():2012-09-1219:37:50.721000
print('today():'+str(datetime.today()))
#datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
#print:now():2012-09-1219:37:50.738000
print('now():'+str(datetime.now()))
#datetime.utcnow():返回一个当前utc时间的datetime对象;
#print:2012-09-1211:37:50.739000
print('utcnow():'+str(datetime.utcnow()))
#datetime.fromtimestamp(timestamp[,tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
#print:fromtimestamp(tmstmp):2012-09-1219:37:50.741000
print('fromtimestamp(tmstmp):'+str(datetime.fromtimestamp(time.time())))
#datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
#print:utcfromtimestamp(tmstmp):2012-09-1211:37:50.742000
print('utcfromtimestamp(tmstmp):'+str(datetime.utcfromtimestamp(time.time())))
#datetime.combine(date,time):根据date和time,创建一个datetime对象;
#print:datetime.combine(date,time):2012-09-1219:46:05
d=date(2012,9,12)
fromdatetimeimport*
t=time(19,46,5)
print('datetime.combine(date,time):'+str(datetime.combine(d,t)))
#datetime.strptime(date_string,format):将格式字符串转换为datetime对象;
#print:2007-03-0421:08:12
print(datetime.strptime("2007-03-0421:08:12","%Y-%m-%d%H:%M:%S"))
#2.datetime类提供的实例方法与属性
dt=datetime.strptime("2012-09-1221:08:12","%Y-%m-%d%H:%M:%S")
#print:2012912218120None
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
print(dt.tzinfo)
print(dt.date())
print(dt.time())
print(dt.replace(year=2013))
print(dt.timetuple())
print(dt.utctimetuple())
print(dt.toordinal())
print(dt.weekday())
print(dt.isocalendar())
#printdt.isoformat([sep])
#datetime.ctime():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));
#3.格式字符串
#datetime.strftime(format)
#%a星期的简写。如星期三为Web
#%A星期的全写。如星期三为Wednesday
#%b月份的简写。如4月份为Apr
#%B月份的全写。如4月份为April
#%c:日期时间的字符串表示。(如:04/07/1010:43:39)
#%d:日在这个月中的天数(是这个月的第几天)
#%f:微秒(范围[0,999999])
#%H:小时(24小时制,[0,23])
#%I:小时(12小时制,[0,11])
#%j:日在年中的天数[001,366](是当年的第几天)
#%m:月份([01,12])
#%M:分钟([00,59])
#%p:AM或者PM
#%S:秒(范围为[00,61],为什么不是[00,59],参考python手册~_~)
#%U:周在当年的周数当年的第几周),星期天作为周的第一天
#%w:今天在这周的天数,范围为[0,6],6表示星期天
#%W:周在当年的周数(是当年的第几周),星期一作为周的第一天
#%x:日期字符串(如:04/07/10)
#%X:时间字符串(如:10:43:39)
#%y:2个数字表示的年份
#%Y:4个数字表示的年份
#%z:与utc时间的间隔(如果是本地时间,返回空字符串)
#%Z:时区名称(如果是本地时间,返回空字符串)
#%%:%%=>%
dt=datetime.now()
#print:(%Y-%m-%d%H:%M:%S%f):2012-09-1223:04:27145000
print('(%Y-%m-%d%H:%M:%S%f):'+str(dt.strftime('%Y-%m-%d%H:%M:%S%f')))
#print:(%Y-%m-%d%H:%M:%S%p):12-09-1211:04:27PM
print('(%Y-%m-%d%H:%M:%S%p):'+str(dt.strftime('%y-%m-%d%I:%M:%S%p')))
#print:%a:Wed
print('%%a:%s'%dt.strftime('%a'))
#print:%A:Wednesday
print('%%A:%s'%dt.strftime('%A'))
#print:%b:Sep
print('%%b:%s'%dt.strftime('%b'))
#print:%B:September
print('%%B:%s'%dt.strftime('%B'))
#print:日期时间%c:09/12/1223:04:27
print('日期时间%%c:%s'%dt.strftime('%c'))
#print:日期%x:09/12/12
print('日期%%x:%s'%dt.strftime('%x'))
#print:时间%X:23:04:27
print('时间%%X:%s'%dt.strftime('%X'))
#print:今天是这周的第3天
print('今天是这周的第%s天'%dt.strftime('%w'))
#print:今天是今年的第256天
print('今天是今年的第%s天'%dt.strftime('%j'))
#print:今周是今年的第37周
print('今周是今年的第%s周'%dt.strftime('%U'))
上面代码案例运行结果如下:
atetime.max:9999-12-3123:59:59.999999
datetime.min:0001-01-0100:00:00
datetime.resolution:0:00:00.000001
today():2014-05-0415:58:18.141186
now():2014-05-0415:58:18.193146
utcnow():2014-05-0407:58:18.243958
fromtimestamp(tmstmp):2014-05-0415:58:18.291558
utcfromtimestamp(tmstmp):2014-05-0407:58:18.342550
datetime.combine(date,time):2012-09-1219:46:05
2007-03-0421:08:12
2012
9
12
21
8
12
0
None
2012-09-12
21:08:12
2013-09-1221:08:12
time.struct_time(tm_year=2012,tm_mon=9,tm_mday=12,tm_hour=21,tm_min=8,tm_sec=12,tm_wday=2,tm_yday=256,tm_isdst=-1)
time.struct_time(tm_year=2012,tm_mon=9,tm_mday=12,tm_hour=21,tm_min=8,tm_sec=12,tm_wday=2,tm_yday=256,tm_isdst=0)
734758
2
(2012,37,3)
(%Y-%m-%d%H:%M:%S%f):2014-05-0415:58:19326295
(%Y-%m-%d%H:%M:%S%p):14-05-0403:58:19PM
%a:Sun
%A:Sunday
%b:May
%B:May
日期时间%c:SunMay415:58:192014
日期%x:05/04/14
时间%X:15:58:19
今天是这周的第0天
今天是今年的第124天
今周是今年的第18周