python日期day_[Python] (Day-20) - 日期和时间

9e4e62ca32fc

Only I can change my life. No one can do it for me.

只有我可以改变我的命运,没有人可以帮我做。

Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间

时间间隔是以秒为单位的浮点小数

每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示

例如:time 模块下函数time.time()用于获取当前时间戳

如下实例:

import time; # 引入time模块

ticks = time.time()

print ("当前时间戳为:", ticks)

实例输出结果:

当前时间戳为: 1509694006.0394611

时间元组

用一个元组装起来的9组数字处理时间

字段

属性

4位数年

tm_year

2008

tm_mon

1 到 12

tm_mday

1到31

小时

tm_hour

0到23

分钟

tm_min

0到59

tm_sec

0到61 (60或61 是闰秒)

一周的第几日

tm_wday

0到6 (0是周一)

一年的第几日

tm_yday

1到366 (儒略历)

夏令时

tm_isdst

-1, 0, 1, -1是决定是否为夏令时的旗帜

获取当前时间

从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数

import time

localtime = time.localtime(time.time())

print ("本地时间为 :", localtime)

输出结果:

本地时间为 : time.struct_time(tm_year=2017, tm_mon=11, tm_mday=3, tm_hour=15, tm_min=29, tm_sec=18, tm_wday=4, tm_yday=307, tm_isdst=0)

获取格式化的时间

根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime()

import time

localtime = time.asctime( time.localtime(time.time()) )

print ("本地时间为 :", localtime)

输出结果:

本地时间为 : Fri Nov 3 15:36:23 2017

格式化日期

使用 time 模块的 strftime 方法来格式化日期

格式

time.strftime(format[, t])

实例:

import time

# 格式化成2016-03-20 11:45:39形式

print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 格式化成Sat Mar 28 22:24:24 2016形式

print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))

# 将格式字符串转换为时间戳

a = "Sat Mar 28 22:24:24 2016"

print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))

实例输出结果:

2017-11-03 15:37:17

Fri Nov 03 15:37:17 2017

1459175064.0

python中时间日期格式化符号

符号

描述

%y

两位数的年份表示(00-99)

%Y

四位数的年份表示(000-9999)

%m

月份(01-12)

%d

月内中的一天(0-31)

%H

24小时制小时数(0-23)

%I

12小时制小时数(01-12)

%M

分钟数(00=59)

%S

秒(00-59)

%a

本地简化星期名称

%A

本地完整星期名称

%b

本地简化的月份名称

%B

本地完整的月份名称

%c

本地相应的日期表示和时间表示

%j

年内的一天(001-366)

%p

本地A.M.或P.M.的等价符

%U

一年中的星期数(00-53)星期天为星期的开始

%w

星期(0-6),星期天为星期的开始

%W

一年中的星期数(00-53)星期一为星期的开始

%x

本地相应的日期表示

%X

本地相应的时间表示

%Z

当前时区的名称

%%

%号本身

获取某月日历

Calendar模块有很广泛的方法用来处理年历和月历

import calendar

cal = calendar.month(2016, 1)

print ("以下输出2016年1月份的日历:")

print (cal)

实例输出结果:

以下输出2017年11月份的日历:

November 2017

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

获取某一年的日历

返回一个多行字符串格式的year年年历

print(calendar.calendar(2017,w=2,l=1,c=6))

实例输出结果:

2017

January February March

Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su

1 1 2 3 4 5 1 2 3 4 5

2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12

9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19

16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26

23 24 25 26 27 28 29 27 28 27 28 29 30 31

30 31

April May June

Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su

1 2 1 2 3 4 5 6 7 1 2 3 4

3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11

10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18

17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25

24 25 26 27 28 29 30 29 30 31 26 27 28 29 30

July August September

Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su

1 2 1 2 3 4 5 6 1 2 3

3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10

10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17

17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24

24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30

31

October November December

Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su

1 1 2 3 4 5 1 2 3

2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10

9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17

16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24

23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31

30 31

其他 Calendar 用法

返回当前每周起始日期的设置,首次载入caendar模块时返回0,即星期一

calendar.firstweekday()

是否闰年,是闰年返回True,否则为false

calendar.isleap(year)

返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)

calendar.weekday(year,month,day)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值