内置模块:
时间模块:time 和 datetime
time
1. 时间戳:就是秒数:
>>> time.time() #返回当前时间的时间戳(每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。)
1529587130.3731368
>>>
2. 格式化的时间字符串:
strftime()).
时间模块:time 和 datetime
time
1. 时间戳:就是秒数:
>>> time.time() #返回当前时间的时间戳(每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。)
1529587130.3731368
>>>
2. 格式化的时间字符串:
strftime()).
Commonly used format codes:
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale's equivalent of either AM or PM.
time.strftime将元组格式的时间,转化格式化输出:
time.strftime("%Y-%m-%d %H:%M:%S".time.localtime())
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
'2018-06-21 22:09:21'
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale's equivalent of either AM or PM.
time.strftime将元组格式的时间,转化格式化输出:
time.strftime("%Y-%m-%d %H:%M:%S".time.localtime())
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
'2018-06-21 22:09:21'
time.strptime将格式化的输出转化为元组格式的时间:
>>> time.strptime('2018-06-21 22:09:21', "%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=9, tm_sec=21, tm_wday=3, tm_yday=172, tm_isdst=-1)
>>>
>>>
最简单的获取可读的时间模式的函数是asctime()
asctime() #将元组格式转化成一个格式:
>>> time.asctime(time.localtime())
'Thu Jun 21 22:26:46 2018'
>>> time.asctime(time.localtime(1529587130.3731368))
'Thu Jun 21 21:18:50 2018'
>>>
>>> time.strptime('2018-06-21 22:09:21', "%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=9, tm_sec=21, tm_wday=3, tm_yday=172, tm_isdst=-1)
>>>
>>>
最简单的获取可读的时间模式的函数是asctime()
asctime() #将元组格式转化成一个格式:
>>> time.asctime(time.localtime())
'Thu Jun 21 22:26:46 2018'
>>> time.asctime(time.localtime(1529587130.3731368))
'Thu Jun 21 21:18:50 2018'
>>>
>>> time.ctime() #将时间戳格式转化为一个格式
'Thu Jun 21 22:30:05 2018'
'Thu Jun 21 22:30:05 2018'
>>> time.timezone
-28800
>>> time.timezone /3600
-8.0
>>>
time.sleep(x) 睡几秒!
>>> time.time()
1529589195.338138
将时间戳转化为UTC的元组格式的时间;
>>> time.gmtime(1529589195.338138)
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=13, tm_min=53, tm_sec=15, tm_wday=3, tm_yday=172, tm_isdst=0)
>>> time.gmtime() 无参数就是当前时间,转化为UTC的标准时间
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=13, tm_min=53, tm_sec=59, tm_wday=3, tm_yday=172, tm_isdst=0)
>>>
将时间戳转化为UTC的元组格式的时间;
>>> time.localtime() 无参数将当前时间戳转化为当前时间
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=21, tm_min=55, tm_sec=18, tm_wday=3, tm_yday=172, tm_isdst=0)
>>>
>>> time.localtime(1529589195.338138)
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=21, tm_min=53, tm_sec=15, tm_wday=3, tm_yday=172, tm_isdst=0)
>>>
取属性:
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=0, tm_sec=16, tm_wday=3, tm_yday=172, tm_isdst=0)
>>> x = time.localtime()
>>> x.tm_year
2018
>>> x.tm_hour
22
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=0, tm_sec=16, tm_wday=3, tm_yday=172, tm_isdst=0)
>>> x = time.localtime()
>>> x.tm_year
2018
>>> x.tm_hour
22
将元组格式的时间转化为时间戳格式:
time.mktime()
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=0, tm_sec=16, tm_wday=3, tm_yday=172, tm_isdst=0)
>>> x = time.localtime()
>>> time.mktime(x)
1529589618.0
time.mktime()
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=22, tm_min=0, tm_sec=16, tm_wday=3, tm_yday=172, tm_isdst=0)
>>> x = time.localtime()
>>> time.mktime(x)
1529589618.0
3. 元组(struct_time)共9个元素:
>>> time.localtime() 等于:time.localtime(time.time())
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=21, tm_min=23, tm_sec=10, tm_wday=3, tm_yday=172, tm_isdst=0)
>>>
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是决定是否为夏令时的旗帜
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 当前时区的名称
%% %号本身
datetime
1.获取当前的时间:datetime.datetime.now()
>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2018, 6, 21, 22, 33, 34, 397472)
>>>
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是决定是否为夏令时的旗帜
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 当前时区的名称
%% %号本身
datetime
1.获取当前的时间:datetime.datetime.now()
>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2018, 6, 21, 22, 33, 34, 397472)
>>>
前一小时
d1 = now - datetime.timedelta(hours=1)
print d1.strftime("%Y-%m-%d %H:%S:%M")
前一天
d2 = now - datetime.timedelta(days=1)
print d2.strftime("%Y-%m-%d %H:%S:%M")
上周日
d3 = now - datetime.timedelta(days=now.isoweekday())
print d3.strftime("%Y-%m-%d %H:%S:%M"), " ", d3.isoweekday()
上周一
d31 = d3 - datetime.timedelta(days=6)
print d31.strftime("%Y-%m-%d %H:%S:%M"), " ", d31.isoweekday()
上个月最后一天
d4 = now - datetime.timedelta(days=now.day)
print d3.strftime("%Y-%m-%d %H:%S:%M")
上个月第一天
print datetime.datetime(d4.year, d4.month, 1)
d1 = now - datetime.timedelta(hours=1)
print d1.strftime("%Y-%m-%d %H:%S:%M")
前一天
d2 = now - datetime.timedelta(days=1)
print d2.strftime("%Y-%m-%d %H:%S:%M")
上周日
d3 = now - datetime.timedelta(days=now.isoweekday())
print d3.strftime("%Y-%m-%d %H:%S:%M"), " ", d3.isoweekday()
上周一
d31 = d3 - datetime.timedelta(days=6)
print d31.strftime("%Y-%m-%d %H:%S:%M"), " ", d31.isoweekday()
上个月最后一天
d4 = now - datetime.timedelta(days=now.day)
print d3.strftime("%Y-%m-%d %H:%S:%M")
上个月第一天
print datetime.datetime(d4.year, d4.month, 1)