python程序能用很多方式处理日期和时间,转换时间格式是一个常见的功能
time模块和calendar模块
一.time模块都是在加载time模块后实验的
时间戳
import time
print time.time() ##显示当前时间戳,从1970年1月1日0:00:00秒算起
---结果
1522838523.11
字符串时间
print time.ctime() ##字符串时间:星期,月份,日,时分秒,年显示时间。同time.asctime()
--->>结果
Wed Apr 4 18:43:33 2018
时间对象
print time.localtime()
print type(time.localtime())
--->>>结果
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=4, tm_hour=18, tm_min=45, tm_sec=11, tm_wday=2, tm_yday=94, tm_isdst=0)
<type 'time.struct_time'>
关于时间对象的一些方法:
print time.localtime().tm_year ##年份
print time.localtime().tm_mon ##月份
print time.localtime().tm_mday ##当前day是一个月的第几天(今天2018年4月4号)
--->>结果
2018
4
4
把时间对象转化成字符串时间
print time.strftime('%Y-%m-%d %X',time.localtime())
print time.strftime('%X',time.localtime())
--->>结果
2018-04-04 18:52:29
18:52:29
把字符串转化时间对象
print time.strptime('2018-5-4','%Y-%d-%m')
--->>结果,注意哦5是天数,4才是月份,后边的格式看清楚
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=5, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=95, tm_isdst=-1)
二.datetime模块:datetime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo
1.date基本操作方法和属性
单纯的date后要跟参数年月日,缺一不可
from datetime import date
print date(2018,4,04) ##即使是少了0输出也会自动补上
--->>
2018-04-04
date 对象所能表示的最大、最小日期;
from datetime import date
print date.max
print date.min
---->>结果
9999-12-31
0001-01-01
date对象所能表示日期的最小单位是天
from datetime import date
print date.resolution
--->>结果:
1 day, 0:00:00
返回当前日期的date对象(就是求当前时间)
from datetime import date
print date.today()
--->>结果
2018-04-04
根据给定的时间戮,返回一个 date 对象;时间戳由time模块提供不是datetime下的time类提供,这点搞清楚
from datetime import date
import time
print date.fromtimestamp(time.time())
--->>结果
2018-04-04
返回 weekday ,如果是星期一,返回 0 ;如果是星期 2 ,返回 1 ,以此类推;
from datetime import date
d= date(2018,4,4)
print d.weekday()
-->>结果 :今天是星期三,阁下若不信去查日历
2
返回 weekday ,如果是星期一,返回 1 ;如果是星期 2 ,返回 2 ,以此类推;
from datetime import date
d= date(2018,4,4)
print d.isoweekday()
-->>
3
返回格式如 (year , month , day) 的元组;
from datetime import date
d= date(2018,4,4)
print d.isocalendar()
--->>结果
(2018, 14, 3)
返回格式如 ‘YYYY-MM-DD’ 的字符串;
from datetime import date
d= date(2018,4,4)
print d.isoformat()
--->>结果
2018-04-04
strftime和 time 模块 format 相同,时间格式字符串输出
from datetime import date
d= date(2018,4,4)
print d.strftime('%Y/%m/%d %X',) ##时间的这些格式打开终端man date
print d.strftime('%Y/%m/%d %H-%M-%S',)
print d.strftime('%Y/%m/%d %H-%M-%S %r',)
--->>结果
2018/04/04 00:00:00
2018/04/04 00-00-00
2018/04/04 00-00-00 12:00:00 AM
year,month,day属性年、月、日
from datetime import date
d= date(2011,1,23)
print d.year,d.month,d.day
--->>结果
2011 1 23
生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性
from datetime import date
d= date(2011,1,23)
print d.year,d.month,d.day
print d.replace(year=2018,month=4,day=3)
---->>结果
2011 1 23
2018-04-03
返回日期对应的 time.struct_time 对象;
from datetime import date
d= date(2011,1,23)
print d.timetuple()
--->>结果
time.struct_time(tm_year=2011, tm_mon=1, tm_mday=23, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=23, tm_isdst=-1)
datetime.time模块(类)
1.time类格式,静态方法
datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] )
静态方法
time 类所能表示的最小、最大时间。
from datetime import time
print time.min
print time.max
--->>结果
00:00:00
23:59:59.999999
时间的最小单位, 这里是 1 微秒;
from datetime import time
print time.resolution
--->>结果
0:00:00.000001
2.time类方法和属性
from datetime import time
t=time(19,57,00)
print type(t)
print t.hour,t.minute,t.second
--->>结果
<type 'datetime.time'>
19 57 0
时区信息
from datetime import time
t=time(19,57,00)
print time.tzinfo
--->>结果
<attribute 'tzinfo' of 'datetime.time' objects>
创建(修改)一个新的时间对象,
from datetime import time
t=time(19,57,00)
print t.replace(hour=20,)
print t.replace(minute=23,second=21)
--->>结果
20:57:00
19:23:21
返回型如 “HH:MM:SS” 格式的字符串表示;
from datetime import time
t=time(19,57,00)
print t.isoformat()
---->>结果
19:57:00
strftime: 取得当前的时间, 同 time 模块中的 format
from datetime import time
t=time(19,57,00)
print t.strftime('%X')
print t.strftime('%r')
print t.strftime('%T')
--->>结果
19:57:00
07:57:00 PM
19:57:00
calendar模块
import calendar
print calendar.month(2018,4)
---->>>
April 2018
Mo Tu We Th Fr Sa Su
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30