python中时间的相互转换

import time
import datetime

三种常用时间形式

# 时间戳
timer = time.time()

# 格式化的字符串时间
struct_time = time.strftime('%Y-%m-%d %X')
struct_time2 = time.strftime('%Y-%m-%d %H:%M:%S')

# 时间对象(结构化时间)
t = time.localtime()      # 本地时间,比世界标准时间早8小时
t1 = time.gmtime()      # 世界标准时间
hour, minutes, second = t.tm_hour, t.tm_min, t.tm_sec

时间戳 —> 格式化字符串时间

# 方法一:
t2 = timer
time_array = time.localtime(t2)
str_time = time.strftime('%Y/%m/%d %X', time_array)
print(str_time)

# 方法二:
# date_array = datetime.datetime.utcfromtimestamp(t2)  # utc:协调世界时,原子时,比北京时间晚8小时
date_array = datetime.datetime.fromtimestamp(t2)
date_str = date_array.strftime("%Y/%m/%d %H:%M:%S")
print(date_str)

时间戳 —> 时间对象

print(time.localtime(1582258954.0))
print(time.gmtime(1582258954.0))

时间戳 —> %a %b %d %H %M %S %Y

基本不会用到

print(time.ctime(1597138596.0))      # Tue Aug 11 17:36:36 2020

格式化字符串时间 —> 时间戳

str_t = '2020/2/21 12:22:34'
time_stamp = time.mktime(time.strptime(str_t, '%Y/%m/%d %X'))
print(time_stamp)

格式化字符串时间 —> 时间对象

print(time.strptime('2011-03-07', '%Y-%m-%d'))

时间对象 —> 时间戳

print(time.mktime(time.localtime()))

时间对象 —> 格式化字符串时间

print(time.strftime('%Y/%m/%d %X', time.localtime()))
print(time.strftime('%Y', time.localtime()))  # 只取出年
print(time.strftime('%X', time.localtime()))  # 只取出时间

时间对象 —> %a %b %d %H %M %S %Y

基本不会用到

print(time.asctime(time.localtime()))

某年某月某日 ——> %Y%m%d

str_value = "2023年7月23日"
format_val = time.strftime("%Y-%m-%d", time.strptime(str_value, '%Y年%m月%d日'))
print(format_val)  # 2023-07-23

获取未来3天或过去3天的时间

print(datetime.datetime.now()+datetime.timedelta(days=3))
print(datetime.datetime.now()+datetime.timedelta(days=-3))

时间替换

tm = datetime.datetime.now()
print(tm.replace(year=2010))      # 替换年份为2010
posted @ 2020-08-11 17:44  cnblogs用户  阅读(1559)  评论(0编辑  收藏  举报