操作笔记

### 内置的模块
### 注意只有 “时间戳时间”才能进行运算!!!

import time

###拿到 时间戳——浮点型的小数
###给计算机看的,可以做一些计算
time.time()

'''# 三种时间:'''
# #时间戳 time.time  给计算机看
print(time.time())
# #2、结构化时间-修改  又叫 命名元组
print(time.localtime())
#3、字符串时间——给人看的
'''
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%x 本地相应的日期表示
%X 本地相应的时间表示
'''
print(time.strftime('%Y-%m-%d %X'))

# 时间戳转字符串时间:
# 先转成结构化时间(localtime()),再转成字符串时间(strftime())
# 括号什么也不写的话默认是当前的时间
# 一天是 86400 秒 3600*24
# 面试题:
f = time.localtime(time.time()-3600*24*3) #3天以前,可以用时间戳按照秒计算
print(f)
str_time = time.strftime('%Y-%m-%d %H:%M:%S',f)
print(str_time)

# 面试:::字符串时间转时间戳

# # 先转结构化时间,再转时间戳
s = '2018-zz-30 12:30' #没有给秒,后面格式化的时间写到分!
f1 = time.strptime(s,'%Y-%m-%d %H:%M')
print(f1) #得出来元组
print(f1.tm_yday) # 334 这一年的第几天
print(f1.tm_mday) # 30 这个月的第几天
# #转时间戳 ————推后两小时——注意单位是秒
c_new = time.mktime(f1) + 2 * 3600
print(c_new)
# #再转回去!!!
f_new = time.localtime(c_new)
str_time_new = time.strftime('%Y-%m-%d %H:%M:%S')
print(str_time_new)

###  1、这个时间向后推一个月!
###  2、 获取当前时间,然后拿这个时间求上个月的当前时间

str_t = '2019-03-20 10:40:00'
#先转格式化时间:
struct_t = time.strptime(str_t,'%Y-%m-%d %H:%M:%S')
print(struct_t)
#再转时间戳并进行计算
c_t = time.mktime(struct_t)
print(c_t)
c_t_new = c_t + (30*24*3600)
print(c_t_new)
#最后再转时间戳再转成字符串时间
struct_t_new = time.localtime(c_t_new)
str_t_new = time.strftime('%Y-%m-%d %X',struct_t_new)
print(str_t_new)
#2、
#当前时间戳
time_now = time.time()
time_before = time_now - 30*24*3600
#之前结构化时间
struct_before = time.localtime(time_before)
# 之前字符串时间
str_before = time.strftime('%Y-%m-%d %X',struct_before)
print(str_before)

###总结:
    # 最主要的是:相互转换:4个;******
    # 再加一个获取当前时间戳:time.time()
    # 计算的时候只能先转成时间戳再进行计算!
'''
    字符串时间————>结构化时间 strptime()
    结构化时间————>时间戳     mktime()
    时间戳    ————>结构化时间 localtime()
    结构化时间————>字符串时间 strftime()
'''
'''
### 注意:
#  strftime('格式','结构化时间')  格式可以少写
#  strptime('字符串时间','格式')  格式必须跟字符串时间一一对应!
'''