Python的time和datetime

#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

 

原文地址:https://www.cnblogs.com/mzc1997/p/7739667.html