python的datetime用法_Python之datetime模块的使用

datetime模块的作用

datetime模块包含一些函数和类,用户完成日期和时间的解析、格式化和算术运算等。

1、自定义时,分,秒,毫秒,时区参数实例一个time对象的示例

importdatetime

t= datetime.time(1, 2, 3)print(t)print('hour :', t.hour)print('minute :', t.minute)print('second :', t.second)print('microsecond:', t.microsecond)print('tzinfo :', t.tzinfo)

datetime_time.py

运行效果

01:02:03hour :1minute :2second :3microsecond: 0

tzinfo : None

2、打印时间最大值和最小值

importdatetimeprint('时间最小值 :', datetime.time.min)print('时间最大值 :', datetime.time.max)print('时间最小值微秒级别 :', datetime.time.resolution)

datetime_time_minmax.py

运行效果

时间最小值 : 00:00:00时间最大值 :23:59:59.999999时间最小值微秒级别 : 0:00:00.000001

3、利用datetime模块获取当前的年,月,日

importdatetime

today=datetime.date.today()print('今天时间:', today)print('ordinal:', today.toordinal())print('Year :', today.year)print('Mon :', today.month)print('Day :', today.day)print('ctime :', today.ctime())

tt=today.timetuple()print('tuple : tm_year =', tt.tm_year)print('tm_mon =', tt.tm_mon)print('tm_mday =', tt.tm_mday)print('tm_hour =', tt.tm_hour)print('tm_min =', tt.tm_min)print('tm_sec =', tt.tm_sec)print('tm_wday =', tt.tm_wday)print('tm_yday =', tt.tm_yday)print('tm_isdst =', tt.tm_isdst)

datetime_date.py

运行效果

今天时间: 2020-05-20ordinal:737565Year :2020Mon :5Day :20ctime : Wed May20 00:00:00 2020tuple : tm_year= 2020tm_mon= 5tm_mday= 20tm_hour=0

tm_min=0

tm_sec=0

tm_wday= 2tm_yday= 141tm_isdst= -1

4、天数每天加1和格式化时间戳的示例

importdatetimeimporttime

o= 733478

print('o :', o)print('fromordinal(o) :', datetime.date.fromordinal(o))

t=time.time()print('t :', t)print('fromtimestamp(t):', datetime.date.fromtimestamp(t))

datetime_date_fromordinal.py

运行效果

o : 733478fromordinal(o) :2009-03-12t :1589960551.3368747fromtimestamp(t):2020-05-20

5、打印日期的最大值,最小值的示例

importdatetimeprint('日期最小值 :', datetime.date.min)print('日期最大值 :', datetime.date.max)print('精确到时分秒 :', datetime.date.resolution)

datetime_date_minmax.py

运行效果

日期最小值 : 0001-01-01日期最大值 :9999-12-31精确到时分秒 :1 day, 0:00:00

6、日期时间的替换

importdatetime

d1= datetime.date(2008, 3, 29)print('d1:', d1.ctime())

d2= d1.replace(year=2009)print('d2:', d2.ctime())

datetime_date_replace.py

运行效果

d1: Sat Mar 29 00:00:00 2008d2: Sun Mar29 00:00:00 2009

7、生成日期时间可算术运算的对象

importdatetimeprint('microseconds:', datetime.timedelta(microseconds=1))print('milliseconds:', datetime.timedelta(milliseconds=1))print('seconds :', datetime.timedelta(seconds=1))print('minutes :', datetime.timedelta(minutes=1))print('hours :', datetime.timedelta(hours=1))print('days :', datetime.timedelta(days=1))print('weeks :', datetime.timedelta(weeks=1))

datetime_timedelta.py

运行效果

microseconds: 0:00:00.000001milliseconds: 0:00:00.001000seconds : 0:00:01minutes : 0:01:00hours :1:00:00days :1 day, 0:00:00weeks :7 days, 0:00:00

8、获取指定时间段的秒数

importdatetimefor delta in [datetime.timedelta(microseconds=1),

datetime.timedelta(milliseconds=1),

datetime.timedelta(seconds=1),

datetime.timedelta(minutes=1),

datetime.timedelta(hours=1),

datetime.timedelta(days=1),

datetime.timedelta(weeks=1),

]:print('{:15} = {:8} seconds'.format(

str(delta), delta.total_seconds())

)

datetime_timedelta_total_seconds.py

运行效果

0:00:00.000001 = 1e-06seconds

0:00:00.001000 = 0.001seconds

0:00:01 = 1.0seconds

0:01:00 = 60.0seconds1:00:00 = 3600.0seconds1 day, 0:00:00 = 86400.0seconds7 days, 0:00:00 = 604800.0 seconds

9、时间的算术运算

importdatetime

today=datetime.date.today()print('Today :', today)

one_day= datetime.timedelta(days=1)print('One day :', one_day)

yesterday= today -one_dayprint('Yesterday:', yesterday)

tomorrow= today +one_dayprint('Tomorrow :', tomorrow)print()print('tomorrow - yesterday:', tomorrow -yesterday)print('yesterday - tomorrow:', yesterday - tomorrow)

datetime_date_math.py

运行效果

Today : 2020-05-20One day :1 day, 0:00:00Yesterday:2020-05-19Tomorrow :2020-05-21tomorrow- yesterday: 2 days, 0:00:00yesterday- tomorrow: -2 days, 0:00:00

10、时间的算术浮点运算

importdatetime

one_day= datetime.timedelta(days=1)print('1 day :', one_day)print('5 days :', one_day * 5)print('1.5 days :', one_day * 1.5)print('1/4 day :', one_day / 4)#assume an hour for lunch

work_day = datetime.timedelta(hours=7)

meeting_length= datetime.timedelta(hours=1)print('meetings per day :', work_day / meeting_length)

datetime_timedelta_math.py

运行效果

1 day : 1 day, 0:00:00

5 days : 5 days, 0:00:00

1.5 days : 1 day, 12:00:00

1/4 day : 6:00:00meetings per day :7.0

11、时间和日期的比较

importdatetimeimporttimeprint('Times:')

t1= datetime.time(12, 55, 0)print('t1:', t1)

t2= datetime.time(13, 5, 0)print('t2:', t2)print('t1 < t2:', t1

d1=datetime.date.today()print('d1:', d1)

d2= datetime.date.today() + datetime.timedelta(days=1)print('d2:', d2)print('d1 > d2:', d1 > d2)

datetime_comparing.py

运行效果

Times:

t1:12:55:00t2:13:05:00t1

Dates:

d1:2020-05-21d2:2020-05-22d1> d2: False

12、通过反射获取年,月,日,时,分,秒的示例

importdatetimeprint('Now :', datetime.datetime.now())print('Today :', datetime.datetime.today())print('UTC Now:', datetime.datetime.utcnow())print()

FIELDS=['year', 'month', 'day','hour', 'minute', 'second','microsecond',

]

d=datetime.datetime.now()for attr inFIELDS:print('{:15}: {}'.format(attr, getattr(d, attr)))

datetime_datetime.py

运行效果

Now : 2020-05-21 09:43:57.311893Today :2020-05-21 09:43:57.311894UTC Now:2020-05-21 01:43:57.311893year :2020month :5day :21hour :9minute :43second :57microsecond :311893

13、时间和日期的拼接示例

1 importdatetime2

3 t = datetime.time(1, 2, 3)4 print('t :', t)5

6 d =datetime.date.today()7 print('d :', d)8

9 dt =datetime.datetime.combine(d, t)10 print('dt:', dt)

datetime_datetime_combine.py

运行效果

t : 01:02:03d :2020-05-21dt:2020-05-21 01:02:03

14、日期时间的格式化

importdatetime

format= "%Y-%m-%d %H:%M:%S"today=datetime.datetime.today()print('ISO :', today)

s=today.strftime(format)print('strftime:', s)

d=datetime.datetime.strptime(s, format)print('strptime:', d.strftime(format))

datetime_datetime_strptime.py

运行效果

ISO : 2020-05-21 09:50:46.448841strftime:2020-05-21 09:50:46strptime:2020-05-21 09:50:46

15、格式化的介绍

importdatetime

today=datetime.datetime.today()print('ISO :', today)print('format(): {:%Y-%m-%d %H:%M:%S}'.format(today))

datetime_format.py

运行效果

ISO : 2020-05-21 10:02:14.044698format():2020-05-21 10:02:14

符号注释示例

%a

缩写的星期几

'Wed'

%A

完整的星期几

'Wednesday'

%w

星期几的编号:0(星期天)到6(星期六)

'3'

%d

当月哪一天

'13'

%b

缩写的月份名

'Jan'

%B

完整的月份名

'January'

%m

当年哪个月

'01'

%y

不加世纪编号的年份

'16'

%Y

加世纪编号的年份

'2016'

%H

24小时制的小时数

'17'

%I

12小时制的小时数

'05'

%p

AM/PM

'PM'

%M

分钟

'00'

%S

'00'

%f

微秒

'000000'

%z

区分时区的日期时间对象的UTC偏移

'-0500'

%Z

时区名

'EST'

%j

当年的哪一天

'013'

%W

当年的哪一周

'02'

%c

当前本地化环境的日期和时间表示

'Wed Jan 13 17:00:00 2016'

%x

当前本地化环境的日期表示

'01/13/16'

%X

当前本地化环境的时间表示

'17:00:00'

%%

字面量%字符

'%'

16、时区的自动转换示例

importdatetime

min6= datetime.timezone(datetime.timedelta(hours=-6))

plus6= datetime.timezone(datetime.timedelta(hours=6))

d=datetime.datetime.now(min6)print(min6, ':', d)print(datetime.timezone.utc, ':',

d.astimezone(datetime.timezone.utc))print(plus6, ':', d.astimezone(plus6))#转换为当前系统时区

d_system =d.astimezone()print(d_system.tzinfo, ':', d_system)

datetime_timezone.py

运行效果

UTC-06:00 : 2020-05-20 20:15:04.716839-06:00UTC :2020-05-21 02:15:04.716839+00:00UTC+06:00 : 2020-05-21 08:15:04.716839+06:00EST :2020-05-21 10:15:04.716839+08:00

17、时间戳转时间的示例

importdatetime

ts= 1590017732ret=datetime.datetime.fromtimestamp(ts)print(ret)

运行效果

2020-05-21 07:35:32

18、时间转时间戳的示例

importdatetime

d= '2020-05-21 07:35:32'ret=datetime.datetime.fromisoformat(d).timestamp()print(ret)

运行效果

1590017732.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值