一、使用time标准模块(稍微复杂一点)
time模块中时间表现的格式主要有三种:
a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
b、struct_time时间元组,共有九个元素组。
c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
import time
# 转换时间为时间戳
def generate_timestamp(dt):
#转换成时间数组
timeArray = time.strptime(dt, "%Y-%m-%d")
#转换成时间戳
timestamp = time.mktime(timeArray)
return timestamp
# 转换时间为%Y-%m-%d %H:%M:%S格式
def convertt_timestamp(tp):
time_origin = time.localtime(tp)
time_o = time.strftime('%Y-%m-%d %H:%M:%S', time_origin)
return time_o
# 转换时间为GMT时间格式:%a, %d %b %Y %H:%M:%S GMT
def gmt_time_now(gmt_format='%a, %d %b %Y %H:%M:%S GMT'):
return datetime.datetime.utcnow().strftime(gmt_format)
# 获取当前时间戳
def unix_time_now():
return str(int(time.time()))
# 获取当前日期
def today():
return time.strftime('%Y-%m-%d', time.localtime(time.time()))
二、使用datetime标准模块
datetime模块包括datetime、date、time和timedelta等4个对象。这里不详细演示了,网上有大量的讲解文章。这里直接上代码,演示日期、时间戳互转。
首先安装一个dateutils第三方模块包,dateutil可以将几乎任何形式的字符串日期数据解析为datetime对象。
pip install dateutils
import dateutil.parser
import datetime
# 转换时间为时间戳
def generate_timestamp(tr):
tm = dateutil.parser.parse(tr).timestamp()
return tm
# 转换时间为%Y-%m-%d %H:%M:%S格式
def convertt_timestamp(tm,frm='%Y-%m-%d %H:%M:%S'):
tr = datetime.datetime.fromtimestamp(tm).strftime(frm)
return tr
if __name__ == '__main__':
tr = '2018-3-25 10:23:55'
print(generate_timestamp(tr))
tm = 1521944635.0
print(convertt_timestamp(tm))
从代码量和复杂度来看datetime模块要比time简洁,而且大部分的日期时间操作在datetime模块里面都有封装