17-time与datetime模块(1)

一、时间的三种模式

在Python中,通常有这几种方式来表示时间:

  • 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
  • 格式化的时间字符串(Format String)
  • 结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
#一:time
import time

# 时间分为三种格式:
# 1、时间戳:从1970年到现在经过的秒数
#    作用:用于时间间隔的计算

print(time.time())                                  # 1585577079.4596283

# 2、按照某种格式显示的时间:2020-03-30 11:11:11
#    作用:用于展示时间

print(time.strftime('%Y-%m-%d %H:%M:%S %p'))        # 2020-03-30 22:03:33 PM
print(time.strftime('%Y-%m-%d %X'))                 # 2020-03-30 22:03:33

# 3、结构化的时间
#    作用:用于单独获取时间的某一部分

res=time.localtime()    
print(res)                                          
# time.struct_time(tm_year=2020, tm_mon=3, tm_mday=30, tm_hour=22, tm_min=4, tm_sec=39, tm_wday=0, tm_yday=90, tm_isdst=0)

print(res.tm_year)                                 #  2020
print(res.tm_yday)                                 # 90

二、datetime 模块

#二:datetime
import datetime

print(datetime.datetime.now())                                  # 2020-03-30 22:06:06.536180
print(datetime.datetime.now() + datetime.timedelta(days=3))     # 2020-04-02 22:06:06.536180
print(datetime.datetime.now() + datetime.timedelta(weeks=1))    # 2020-04-06 22:06:06.536180
import datetime
print(datetime.datetime.now())              # 当前时间
print(datetime.datetime.utcnow())           # 世界时间

print(datetime.datetime.fromtimestamp(333333))      # 将时间戳直接转换成 日期格式 1970-01-05 04:35:33

三、时间模块需要掌握的操作

3.1 时间格式的转换

# 1、时间格式的转换
# struct_time->时间戳
import time
s_time=time.localtime()
print(time.mktime(s_time))

# 时间戳->struct_time
tp_time=time.time()
print(time.localtime(tp_time))

# 补充:世界标准时间与本地时间
print(time.localtime())
print(time.gmtime())                # 世界标准时间,格林威治时间
print(time.localtime(333333333))
print(time.gmtime(333333333))


# struct_time->格式化的字符串形式的时间
s_time=time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))
print(time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S'))

3.2 时间戳与格式化时间的转换(!!!重点!!!)

 

 

# format string<------>timestamp
# '1988-03-03 11:11:11'+7

# format string--->struct_time--->timestamp     格式化字符串时间转换成时间戳  
struct_time=time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S')
timestamp=time.mktime(struct_time)+7*86400
print(timestamp)                                    # 573966671.0

# format string<---struct_time<---timestamp     时间戳转换成格式化字符串时间
res=time.strftime('%Y-%m-%d %X',time.localtime(timestamp))
print(res)                                          # 1988-03-10 11:11:11

 

3.2 了解知识

 

 

#--------------------------按图2转换时间
# asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。
# 如果没有参数,将会将time.localtime()作为参数传入。
print(time.asctime())#Sun Sep 11 00:43:43 2016

# ctime([secs]) : 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
# None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
print(time.ctime())  # Sun Sep 11 00:46:38 2016
print(time.ctime(time.time()))  # Sun Sep 11 00:46:38 2016

 

 


 

posted @ 2020-03-30 22:00  Jil-Menzerna  阅读(163)  评论(0)    收藏  举报