python -- time和datetime模块
python -- time和datetime模块
time模块
在Python中,通常有几种方式表示时间:
- 时间戳,单位是 秒。时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。Unix诞生年。
- 格式化的时间字符串
- 元组(struct_time)共9个元素
UTC(Coordinated Universal Time世界协调时),即格林威治天文时间,世界标准时间。在中国为UTC+8.,比标准时间早8个小时。
DST(Daylight Saving Time),夏令时。
import time
x = time.localtime()
print(x)
'''
time.struct_time(tm_year=2017,
tm_mon=7, tm_mday=7, tm_hour=14,
tm_min=24, tm_sec=22, tm_wday=4,
tm_yday=188, tm_isdst=0)
tm_year=2017 年,
tm_mon=7 月,
tm_mday=7 日,
tm_hour=14 时,
tm_min=24 分,
tm_sec=22 秒,
tm_wday=4 一周的第4天,
tm_yday=188 一年的第188天,
tm_isdst=0 不是夏令时)
'''
time的变量
- time.timezone,单位(秒),本地时间与UTC的差值;
- time.altzone,单位(秒),本地时间与夏令时的差值;
- time.daylight,是否是夏令时;
- time.tzname,元组(标准时间区名,夏令时区名)
time的方法
- time.time(),获取时间戳
- time.clock(), 不同的平台效果不同,忘了吧
- time.sleep(),让程序睡几秒
- time.gmtime(时间戳),把时间戳转struct_time。默认值是当前的时间,但是转成UTC的时间,所以会和当地时间有时差。
- time.localtime(时间戳),把时间戳转struct_time。默认值是当前的时间。
- time.mktime(struct_time),把struct_time转成时间戳。
- time.strftime(),把struct_time转成格式化字符串,time.strftime('格式', struct_time)。
- time.strptime(),把格式化字符串转成struct_time,time.strptime('格式化的字符串', '格式')。对应的位置要一一对应上!!
- time.asctime(struct_time),把struct_time转成特定的格式。
- time.ctime(时间戳),把时间戳转成特定的格式。
graph TD
A["time模块"]-->|"time.time()"|B["Timestamp时间戳"]
B-->|"time.gmtime()"|C["Struct_time"]
B-->|"time.localtime()"|C["Struct_time"]
C-->|"time.mktime()"|B
C-->|"time.strftime()"|D["格式化"]
D-->|"time.strptime()"|C
time.asctime()和time.ctime()的关系
import datetime, time
x = time.localtime()
y = time.time()
a = time.asctime(x)
b = time.ctime(y)
print(a)
print(b)
graph TD
A["Struct_time"]-->|"time.asctime()"|B["%a %b %d %H %M %S %Y 串"]
C["Timestamp时间戳"]-->|"time.ctime()"|B
一些例子
import time
'''tm_year,tm_mon,tm_mday,
tm_hour,tm_min,tm_sec,
tm_wday,tm_yday,tm_isdst'''
x = time.localtime()
print(x.tm_year)
print(x.tm_mon)
print(x.tm_mday)
print(x.tm_hour)
import time
x = time.localtime()
'''y与之间的互转,strftime--strptime'''
y = time.strftime('%y-%m-%d %H-%M-%S', x)
z = time.strptime(y, '%y-%m-%d %H-%M-%S')
print(y)
print(z)
datetime模块
- datetime.date.now(),获得当前时间
- datetime.timedelta()需要和datatime.datetime.now()配合使用
import datetime,time
'''返回当前时间'''
x = datetime.datetime.now()
'''当前时间+3天'''
y = x + datetime.timedelta(3)
'''当前时间-3天'''
z = x + datetime.timedelta(-3)
'''当前时间+3小时'''
a = x + datetime.timedelta(hours=3)
'''当前时间-30分钟'''
b = x + datetime.timedelta(minutes=-30)
c = x.fromtimestamp(time.time())
'''修改时间'''
c_time = datetime.datetime.now()
re_c_time = c_time.replace(minute=3, hour=2)
print(x)
print(y)
print(z)
print(a)
print('--------------------')
print(c)
print('********************')
print(re_c_time)
写在后面
| 参数说明 | 内容 | 备注 |
|---|---|---|
| %Y | 年 | |
| %m | 月 | 01~12 |
| %d | 日 | 01~31 |
| %H | 24时 | 00~23 |
| %M | 分 | 00~59 |
| %S | 秒 | 00~61 |
| %z | 时区的名称 | |
| %a | 本地简化星期名称 | |
| %A | 本地完整星期名称 | |
| %b | 本地简化月份名称 | |
| %B | 本地完整月份名称 | |
| %c | 本地相应的日期和时间表示 | |
| %I | 12时 | 01~12 |
| %p | AM/PM |

浙公网安备 33010602011771号