#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 当前时区的名称
%% %号本身
int tm_sec; /* 秒–取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - <span style="color:#cc0000;">取值区间为[0,11]</span> */
int tm_year; /* 年份,其值从1900开始 */
int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,
在计算机中,时间实际上是用数字表示的。我们把1970年1月1日 00:00:00 UTC+00:00时区的时刻称为epoch time,记为0
(1970年以前的时间timestamp为负数),当前时间就是相对于epoch time的秒数,称为timestamp。
1 import time
2
3 >>>print(time.time())
4 1509073491.401289
5
6 # time.localtime(secs)
7 >>>print('localtime', time.localtime(1509066702.2862496)) #接受指定时间戳,返回对应的当地时间日期元组
8 localtime time.struct_time(tm_year=2017, tm_mon=10, tm_mday=27, tm_hour=9, tm_min=11, tm_sec=42, tm_wday=4, tm_yday=300, tm_isdst=0)
9 >>>print('localtime', time.localtime()) #返回当前时间对应的当地时间日期的元组
10 localtime time.struct_time(tm_year=2017, tm_mon=10, tm_mday=27, tm_hour=11, tm_min=4, tm_sec=51, tm_wday=4, tm_yday=300, tm_isdst=0)
11
12 #time.mktime(tupletime)
13 t = (2017, 10, 27, 9, 3, 38, 1, 48, 0) #时间元组必须有九个参数tupletime(year,mon,day,hour,min,sec,wday,yday,isdst)
14 secs = time.mktime(t) #接受一个时间元组,返回一个时间戳对象
15 >>>print('timestamp: %f' % secs)
16 timestamp: 1509066218.000000
17
18
19 #time.gmtime(timestamp)接受一个时间戳,返回时间元组
20 >>>print('gmtime:', time.gmtime(1509066218.000000)) #指定时间戳对应的格林尼治时间元组
21 gmtime: time.struct_time(tm_year=2017, tm_mon=10, tm_mday=27, tm_hour=1, tm_min=3, tm_sec=38, tm_wday=4, tm_yday=300, tm_isdst=0)
22 >>>print('gmtime:', time.gmtime(time.time())) #当前时间戳对应的格林尼治时间元组
23 gmtime: time.struct_time(tm_year=2017, tm_mon=10, tm_mday=27, tm_hour=3, tm_min=4, tm_sec=51, tm_wday=4, tm_yday=300, tm_isdst=0)
24
25 #time.asctime(tupletime)接受一个时间元组,返回格式化之后的时间格式
26 secs= 1509066218.000000
27 >>>print("asctime(localtime(secs)): %s" % time.asctime(time.localtime(secs))) #本地指定时间戳对应的本地格式
28 asctime(localtime(secs)): Fri Oct 27 09:03:38 2017
29
30 >>>print('asctime(gmtime(secs)): %s' % time.asctime(time.gmtime(secs)))#返回指定时间戳对应的格林尼治时间的格式
31 asctime(gmtime(secs)): Fri Oct 27 01:03:38 2017
32
33 >>>print('asctime:', time.asctime()) #没有参数就是当前时间的格式化
34 asctime: Fri Oct 27 11:04:51 2017
35
36
37 #time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') format参数指定了时间格式
38 >>>print('tupletime:',time.strptime("27 Oct 17 10", '%d %b %y %H')) #给定的日期解析为时间元组
39
40 #time.strftime(format,tupletime)接受format格式和一个时间元组,返回的格式以自定义为准
41 >>>print('now_time:',time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
42 now_time: 2017-10-27 11:04:51
43
44 #time.ctime(secs)如果给了时间戳参数,就返回指定时间戳格式化之后的格式,
45 >>>print('time.ctime:%s' % time.ctime(secs=1509066218.000000))
46 time.ctime:Fri Oct 27 09:03:38 2017
47 >>>print('time.ctime:%s' % time.ctime())
48 time.ctime:Fri Oct 27 11:04:51 2017
49
50 #time.sleep(secs)#当前线程推迟s秒执行
51 time.sleep(2)
datetime模块
两种方法:
1.import datetime
2.form datetime import datetime
前一个datetime表示的是模块,后者则是datetime模块的一个类,所以datetime两种方法
我用了第二种 更简洁一些吧。。
# now()函数用于获取当前时间
>>>print('nowtime:', datetime.now())
nowtime: 2017-10-27 11:34:49.443648
# 还可以以格式输出你指定的日期
>>>print('mytime:', datetime(1997, 11, 3, 13, 13, 13))
mytime: 1997-11-03 13:13:13
# 将指定时间转换为时间戳
>>>print('mystamp:', datetime(1997, 11, 3, 13, 13, 13).timestamp()) #这里调用了timestamp()函数
mystamp: 878533993.0
# 将时间戳转换为时间
>>>print('mytime:', datetime.fromtimestamp(878533993.0))
mytime: 1997-11-03 13:13:13
# strptime(date_string, format)用来格式化字符串,和time模块用法相同
# strftime(self,format)输出格式以自定义为准
>>>print(datetime.now().strftime('%Y-%m-%d'))
2017-10-27