生成时间戳
1. time.time()
输出 1515137389.69163
=====================
生成格式化的时间字符串
1. time.ctime()
输出 Fri Jan 5 15:34:00 2018
=============================
2. time.strftime("%Y-%m-%d %H:%M:%S")
输出 2018-01-05 15:34:27
========================
生成结构化时间
1. time.gmtime()
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=7, tm_min=34, tm_sec=57, tm_wday=4, tm_yday=5, tm_isdst=0)
===========================================================================================================================
2. time.localtime()
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=35, tm_sec=59, tm_wday=4, tm_yday=5, tm_isdst=0)
============================================================================================================================
时间戳转结构化时间
1. time.gmtime(time.time()
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=7, tm_min=36, tm_sec=40, tm_wday=4, tm_yday=5, tm_isdst=0)
===========================================================================================================================
2. time.localtime(time.time())
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=37, tm_sec=32, tm_wday=4, tm_yday=5, tm_isdst=0)
============================================================================================================================
时间戳转格式化时间字符串
1. time.ctime(time.time())
输出 Fri Jan 5 15:38:14 2018
=============================
结构化时间转时间戳
1. time.mktime(time.localtime())
输出 1515138003.0
=================
结构化时间转格式化的时间字符串
1. time.asctime(time.localtime()) # 第一个参数是默认参数
输出 Fri Jan 5 15:40:22 2018
=============================
2. time.strftime(‘%Y-%m-%d‘,time.localtime()) # 第二个参数是默认参数
输出 2018-01-05
===============
格式化的时间字符串转结构化时间
1. time.strptime(time.strftime("%Y-%m-%d %H:%M:%S"), ‘%Y-%m-%d %H:%M:%S‘)
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=41, tm_sec=35, tm_wday=4, tm_yday=5, tm_isdst=-1)
=============================================================================================================================
2. time.strptime(time.ctime(), ‘%a %b %d %H:%M:%S %Y‘)
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=42, tm_sec=7, tm_wday=4, tm_yday=5, tm_isdst=-1)
============================================================================================================================
格式化时间转时间戳
1. time.mktime(time.strptime(time.ctime(), "%a %b %d %H:%M:%S %Y"))
输出 1515138182.0
=================
2. time.mktime(time.strptime(time.strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S"))
输出 1515138201.0
=================
格式 | 含义 |
---|---|
%a | 本地(locale)简化星期名称 |
%A | 本地完整星期名称 |
%b | 本地简化月份名称 |
%B | 本地完整月份名称 |
%c | 本地相应的日期和时间表示 |
%d | 一个月中的第几天(01 - 31) |
%H | 一天中的第几个小时(24小时制,00 - 23) |
%I | 第几个小时(12小时制,01 - 12) |
%j | 一年中的第几天(001 - 366) |
%m | 月份(01 - 12) |
%M | 分钟数(00 - 59) |
%p | 本地am或者pm的相应符 |
%S | 秒(01 - 61) |
%U | 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。 |
%w | 一个星期中的第几天(0 - 6,0是星期天) |
%W | 和%U基本相同,不同的是%W以星期一为一个星期的开始 |
%x | 本地相应日期 |
%X | 本地相应时间 |
%y | 去掉世纪的年份(00 - 99) |
%Y | 完整的年份 |
%Z | 时区的名字(如果不存在为空字符) |
%% | ‘%‘字符 |
Datetime模块
<class ‘datetime.datetime‘>对象
1. datetime.datetime.now()
输出 2018-01-05 15:45:32.334965
===============================
2. datetime.datetime(year=2018,month=1,day=3,hour=4, minute=32, second=23, microsecond=22222)
输出 2018-01-03 04:32:23.022222
===============================
<class ‘datetime.timedelta‘>对象
1. datetime.timedelta(days=5,seconds=1,microseconds=22222,minutes=11,hours=11,weeks=2)
输出 19 days, 11:11:01.022222
=============================
<class ‘datetime.date‘>对象
1. datetime.date(year=2018,month=1,day=3)
输出 2018-01-03
===============
<class ‘datetime.time‘>对象
1. datetime.time(hour=4, minute=32, second=23, microsecond=22222)
输出 04:32:23.022222
====================
字符串转datetime对象
1. datetime.datetime.strptime(time.strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S")
输出 2018-01-05 15:48:42
========================
2. datetime.datetime.strptime(time.ctime(), "%a %b %d %H:%M:%S %Y")
输出 2018-01-05 15:49:04
========================
时间戳转datetime对象
1. datetime.datetime.fromtimestamp(time.time())
输出 2018-01-05 15:49:21.308415
===============================
2. datetime.datetime.utcfromtimestamp(time.time())
输出 2018-01-05 07:49:57.526658
===============================
datetime对象转格式化时间字符
1. datetime.datetime(2018, 1, 5, 15, 19, 59).strftime("%Y-%m-%d %H:%M:%S")
输出 2018-01-05 15:19:59
========================
datetime对象转结构化时间
1. datetime.datetime(2018, 1, 5, 15, 19, 59).timetuple()
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=19, tm_sec=59, tm_wday=4, tm_yday=5, tm_isdst=-1)
=============================================================================================================================
1、python3日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
时间间隔是以秒为单位的浮点小数。
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳
>>> import time >>> print(time.time()) 1508312234.7298932 #时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
2、时间元组
很多Python函数用一个元组装起来的9组数字处理时间
字段 | 属性 | 值 |
4位年数 | tm_year | 2017 |
月 | 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 |
#从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数 >>> print(time.localtime(time.time())) time.struct_time(tm_year=2017, tm_mon=10, tm_mday=18, tm_hour=15, tm_min=40, tm_sec=59, tm_wday=2, tm_yday=291, tm_isdst=0)#当前时间为:2017年,10月,18日,15时,40分,59秒,星期三,一年中的291天,不是夏令
3、获取格式化的时间
可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime()
>>> import time >>> print(time.asctime(time.localtime(time.time()))) Wed Oct 18 16:03:24 2017 #wed为星期三,oct为october十月的缩写,18日,时间,年
4、格式化日期
可以使用 time 模块的 strftime 方法来格式化日期
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 当前时区的名称
- %% %号本身
>>> import time >>> print(time.strftime(‘%Y‘,time.localtime())) #获取完整年份 2017 >>> print(time.strftime(‘%y‘,time.localtime())) #获取简写年份 17 >>> print(time.strftime(‘%m‘,time.localtime())) #获取月 10 >>> print(time.strftime(‘%d‘,time.localtime())) #获取日 18 >>> print(time.strftime(‘%Y-%m-%d‘,time.localtime())) #获取年-月-日 2017-10-18 >>> print(time.strftime(‘%H‘,time.localtime())) #获取时,24小时制 16 >>> print(time.strftime(‘%l‘,time.localtime())) #获取时,12小时制 4 >>> print(time.strftime(‘%M‘,time.localtime())) #获取分 33 >>> print(time.strftime(‘%S‘,time.localtime())) #获取秒 31 >>> print(time.strftime(‘%H:%M:%S‘,time.localtime())) #获取时:分:秒 16:34:28 >>> print(time.strftime(‘%a‘,time.localtime())) #本地简化星期 Wed >>> print(time.strftime(‘%A‘,time.localtime())) #本地完整星期 Wednesday >>> print(time.strftime(‘%b‘,time.localtime())) #本地简化月份 Oct >>> print(time.strftime(‘%B‘,time.localtime())) #本地完整月份 October >>> print(time.strftime(‘%c‘,time.localtime())) #本地日期和时间表示 Wed Oct 18 16:37:46 2017 >>> print(time.strftime(‘%j‘,time.localtime())) #一年中的第几天 291 >>> print(time.strftime(‘%p‘,time.localtime())) #P.M等价符 PM >>> print(time.strftime(‘%U‘,time.localtime())) #一年中的第几个星期,星期天为星期的开始 42 >>> print(time.strftime(‘%w‘,time.localtime())) #星期几,星期天为星期的开始 3 >>> print(time.strftime(‘%W‘,time.localtime())) #一年中的第几个星期,星期一为星期的开始 42 >>> print(time.strftime(‘%x‘,time.localtime())) #本地日期表示 10/18/17 >>> print(time.strftime(‘%X‘,time.localtime())) #本地时间表示 17:16:17 >>> print(time.strftime(‘%Z‘,time.localtime())) #当前时区 CST >>> print(time.strftime(‘%%‘,time.localtime())) #输出%本身 % >>> print(time.strftime(‘%Y-%m-%d %H:%M:%S %w-%Z‘,time.localtime())) 2017-10-18 17:25:39 3-CST #完整日期,时间,星期,时区
5、获取月日历
Calendar模块有很广泛的方法用来处理年历和月历
>>> import calendar >>> cal=calendar.month(2017,10) >>> print(cal) October 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 31 #calendar.calendar(2017) #返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。 每行长度为21* W+18+2* C。l是每星期行数。 >>> c = calendar.calendar(2017) >>> print(c) 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.firstweekday返回当前每周起始日期的设置。默认情况下,首次载入calendar模块时返回0,即星期一。 >>> calendar.firstweekday() 0 #calendar.setfirstweekday设置每周的起始日期码。0(星期一)到6(星期日)。 >>> calendar.setfirstweekday(1) >>> calendar.firstweekday() 1 # calendar.isleap是闰年返回True,否则为false。 >>> calendar.isleap(2017) False >>> print(calendar.isleap(2020)) True #calendar.leapdays返回在两年之间的闰年总数,但不包括末年 >>> print(calendar.leapdays(2016,2020)) 1 >>> print(calendar.leapdays(2016,2021)) 2 #calendar.monthcalendar返回一个整数的单层嵌套列表,每个子列表装载代表一个星期,月外的日期设为0 >>> print(calendar.monthcalendar(2017,10)) [[0, 0, 0, 0, 0, 0, 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, 31, 0, 0, 0, 0, 0]] >>> print(calendar.month(2017,10)) October 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 31 #calendar.monthrange返回两个整数,第一个为该月的首日的星期(0-6),第二个为该月的总天数 >>> print(calendar.monthrange(2017,10)) (6, 31) #calendar.timegm接受一个时间元组形式struct_time,返回该时刻的时间辍(1970纪元后经过的浮点秒数) >>> print(calendar.timegm((2017,10,19,14,50,0,0,0,0))) 1508424600 >>> print(calendar.timegm((2017,10,19,14,50,50,0,0,0))) 1508424650 >>> print(time.localtime(time.time())) time.struct_time(tm_year=2017, tm_mon=10, tm_mday=19, tm_hour=14, tm_min=49, tm_sec=44, tm_wday=3, tm_yday=292, tm_isdst=0) #calendar.weekday返回给定日期的星期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。 >>> print(calendar.weekday(2017,10,19)) 3 >>> print(calendar.weekday(2017,10,20)) 4
6、Time模块
Time 模块包含了以下内置函数,既有时间处理相的,也有转换时间格式的:
#time.altzone #返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。 >>> import time >>> print(time.altzone) -28800 #time.asctime([tupletime]) #接受时间元组并返回一个可读的形式为"Thu Oct 19 15:07:31 2017"(2017年10月19日 周四15时07分31秒)的24个字符的字符串。 >>> print(time.asctime(time.localtime())) Thu Oct 19 15:07:31 2017 #time.clock() #用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。 >>> import time >>> def procedure(): ... time.sleep(2.5) ... >>> t0 = time.clock() >>> procedure() >>> print(time.clock() - t0) 0.010000000000000009 >>> print(time.clock() - t0) 0.020000000000000004 #time.ctime()作用相当于asctime(localtime(secs)),未给参数相当于asctime() >>> import time >>> print(time.ctime()) Thu Oct 19 19:24:24 2017 >>> print(time.asctime(time.localtime())) Fri Oct 20 11:10:00 2017 >>> print(time.asctime()) Fri Oct 20 11:10:19 2017 #time.gmtime()以元组方式返回格林威治时间 >>> print(time.gmtime()) time.struct_time(tm_year=2017, tm_mon=10, tm_mday=20, tm_hour=3, tm_min=27, tm_sec=30, tm_wday=4, tm_yday=293, tm_isdst=0) #time.localtime()以元组方式返回本地当前时间 >>> print(time.localtime()) time.struct_time(tm_year=2017, tm_mon=10, tm_mday=20, tm_hour=11, tm_min=30, tm_sec=33, tm_wday=4, tm_yday=293, tm_isdst=0) #time.mktime()将元组时间转换为时间戳 >>> x = time.localtime() >>> x time.struct_time(tm_year=2017, tm_mon=10, tm_mday=20, tm_hour=11, tm_min=32, tm_sec=8, tm_wday=4, tm_yday=293, tm_isdst=0) >>> time.mktime(x) 1508470328.0 #time.strftime(fmt[,tupletime]) #接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。 >>> print(time.strftime(‘%Y-%m-%d %H:%M:%S‘,time.localtime())) 2017-10-20 17:29:08
#time.strptime() #根据fmt的格式把一个时间字符串解析为时间元组。 >>> print(time.strptime(‘23 Oct 2017‘,‘%d %b %Y‘)) time.struct_time(tm_year=2017, tm_mon=10, tm_mday=23, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=296, tm_isdst=-1) >>> print(time.strptime(‘23 Oct 2017 14 03 00‘,‘%d %b %Y %H %M %S‘)) time.struct_time(tm_year=2017, tm_mon=10, tm_mday=23, tm_hour=14, tm_min=3, tm_sec=0, tm_wday=0, tm_yday=296, tm_isdst=-1) #time.time #返回当前时间的时间戳(1970年经过的秒数) >>> print(time.time()) 1508739061.9443805 #time.timezone #是当地时区距离格林威治偏移的秒数 >>> print(time.timezone) -28800 #time.tzname #输出一个包含一个不包含夏令时的本地时区名称 >>> print(time.tzname) (‘CST‘, ‘CST‘)
1、获取当前时间和时区
>>> now = time.time() # 当前时间 float类型 >>> time.strftime("%Y-%m-%d %H:%M:%S") #当前时间 str ‘2016-11-04 15:29:58‘ >>> time.ctime() # 当前时间 english str ‘Fri Nov 4 15:40:42 2016‘ >>> time.time() 1478244363.875308 >>> time.localtime() # 当前时间 time结构体 time.struct_time(tm_year=2016, tm_mon=11, tm_mday=4, tm_hour=15, tm_min=26, tm_sec=9, tm_wday=4, tm_yday=309, tm_isdst=0) >>> time.localtime(now) # float -> struct_time time.struct_time(tm_year=2016, tm_mon=11, tm_mday=4, tm_hour=15, tm_min=26, tm_sec=1, tm_wday=4, tm_yday=309, tm_isdst=0) >>> time.strftime(‘%Z‘, time.localtime()) # 显示当前时区 China standard timezone ‘CST‘ >>> time.gmtime() # 显示UTC标准时间 跟中国相差8个钟 time.struct_time(tm_year=2016, tm_mon=11, tm_mday=4, tm_hour=7, tm_min=26, tm_sec=28, tm_wday=4, tm_yday=309, tm_isdst=0)
其中time.time()返回的一个float型,是从1970年1月1日0时起到当前经过的秒数,注意这里是分时区的
time.localtime()返回的是一个time结构体,其中包括tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst=0(夏令时间标志)
2、时间字符串转成time格式
>>> a = ‘2016-11-04 15:29:58‘ >>> time.strptime(a, "%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2016, tm_mon=11, tm_mday=4, tm_hour=15, tm_min=29, tm_sec=58, tm_wday=4, tm_yday=309, tm_isdst=-1)
3、时间字符串转成float类型
>>> a = ‘2016-11-04 15:29:58‘ >>> time.mktime(time.strptime(a, "%Y-%m-%d %H:%M:%S")) 1478244598.0
4、time tuple格式转成字符串
>>> time_tuple = (2016, 11, 04, 13, 51, 18, 2, 317, 0) >>> time.strftime("%Y-%m-%d %H:%M:%S", time_tuple) ‘2016-11-04 13:51:18‘
5、float类型转成时间字符串
>>> a = 1478244598.0 >>> b = time.localtime(a) >>> time.strftime("%Y-%m-%d %H:%M:%S", b) ‘2016-11-04 15:29:58‘
6、时间和日期格式化符号说明
%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 当前时区的名称 %% %号本身
二、datetime
1、获取当前时间
>>> datetime.datetime.now() # datetime tuple datetime.datetime(2016, 11, 4, 15, 52, 17, 680405) >>> time.mktime(datetime.datetime.now().timetuple()) # float类型 1478245984.0 >>> datetime.datetime.now().replace(second=0, microsecond=0) # 秒数为0 毫秒数为0 datetime.datetime(2016, 11, 4, 15, 54) >>> datetime.date.today() # 当前天 datetime.date(2016, 11, 4)
2、datetime tuple转成时间字符串
>>> now = datetime.datetime.now() >>> now.strftime("%Y-%m-%d %H:%S:%M") ‘2016-11-04 16:06:00‘
3、datetime tuple转成float类型
>>> now = datetime.datetime.now() >>> time.mktime(now.timetuple()) 1478246406.0
4、datetime date和time转换
>>> a = datetime.date(2016, 11, 4) >>> datetime.datetime.strptime(str(a),‘%Y-%m-%d‘) datetime.datetime(2016, 11, 4, 0, 0) >>> a datetime.date(2016, 11, 4)
5、获取当前时间的前一段时间
now = datetime.datetime.now() # 前一小时 a = now - datetime.timedelta(hours=1) print a.strftime("%Y-%m-%d %H:%S:%M") # 前一天 b = now - datetime.timedelta(days=1) print b.strftime("%Y-%m-%d %H:%S:%M") # 上周日 c = now - datetime.timedelta(days=now.isoweekday()) print c.strftime("%Y-%m-%d %H:%S:%M")# 上周一 d = c - datetime.timedelta(days=6) print d.strftime("%Y-%m-%d %H:%S:%M")# 上个月最后一天 e = now - datetime.timedelta(days=now.day) print e.strftime("%Y-%m-%d %H:%S:%M") # 上个月第一天 print datetime.datetime(e.year, e.month, 1)
# 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 当前时区的名称
# %% %号本身
import time
print time.time()
输出的结果是:
1279578704.6725271
但是这样是一连串的数字不是我们想要的结果,我们可以利用time模块的格式化时间的方法来处理:
time.localtime(time.time())
用time.localtime()方法,作用是格式化时间戳为本地的时间。
输出的结果是:
time.struct_time(tm_year=2010, tm_mon=7, tm_mday=19, tm_hour=22, tm_min=33, tm_sec=39, tm_wday=0, tm_yday=200, tm_isdst=0)
现在看起来更有希望格式成我们想要的时间了。
time.strftime(‘%Y-%m-%d‘,time.localtime(time.time()))
最后用time.strftime()方法,把刚才的一大串信息格式化成我们想要的东西,现在的结果是:
2010-07-19
time.strftime里面有很多参数,可以让你能够更随意的输出自己想要的东西:
下面是time.strftime的参数:
strftime(format[, tuple]) -> string
将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
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 当前时区的名称
%% %号本身
原文地址:https://www.cnblogs.com/duanlinxiao/p/9835376.html