python日期和时间

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值