python时间格式转换format_Python 里的时间、日期与格式化的互相转换

起步

time 模块

了解时间戳、结构化时间对象、时间格式化

# 时间戳 单位秒

time.time()

# 结构化时间对象

st = time.localtime() # 等价于 time.localtime( time.time() )

print(st)

"""

time.struct_time(

tm_year=2020, # 年

tm_mon=7, # 月

tm_mday=14, # 日

tm_hour=19, # 时

tm_min=26, # 分

tm_sec=51, # 秒

tm_wday=1, # 星期几 0:表示星期一

tm_yday=196, # 今年的第n天

tm_isdst=0 # 是否为夏令时

)

"""

# 格式化的时间字符串

time.ctime() # Tue Jul 14 23:20:07 2020 # 这是取本地时间

time.ctime(time.time()) # Tue Jul 14 23:20:07 2020

time.asctime( time.localtime() ) # Tue Jul 14 23:20:07 2020

time.strftime("%Y-%m-%d %H:%M:%S") # 2020-07-14 23:20:07 # 默认取当前的本地时间

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 2020-07-14 23:20:07

time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) # 2020-07-14 15:20:07 # 取 UTC 时间

三种格式之间的互转

# 时间戳 -> 结构化对象

time.gmtime( time.time() ) # UTC 时间

time.localtime( time.time() ) # 本地时间

# 结构化时间对象 -> 时间戳

time.mktime( time.localtime() )

# 结构化对象 -> 格式化时间字符串

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())

# 时间格式字符串 -> 结构化时间对象

strtime = '2020-07-14 13:28:18'

time.strptime(strtime, "%Y-%m-%d %H:%M:%S")

datetime 模块

datetime.date

datetime.time

datetime.datetime

datetime.timedelta

# 创建 datetime 对象

datetime.datetime(year, month=None, day=None, hour=0, minute=0, second=0,

microsecond=0, tzinfo=None)

datetime.datetime.now() # 以当前时间作为 datetime

datetime.datetime.today() # 与 now 一样

其他格式转 datetime

# 时间戳 -> datetime

datetime.datetime.fromtimestamp(time.time())

# 字符串格式 -> datetime

datetime.datetime.strptime('2020-07-14 23:56:10', '%Y-%m-%d %H:%M:%S')

# 结构化对象 -> datetime 没有直接转换接口,需要先转为时间戳

datetime.datetime.fromtimestamp(time.mktime(time.localtime()))

datetime 转其他格式

dt = datetime.datetime.now()

# 转为结构化时间对象

dt.timetuple()

# 转为时间戳

dt.timestamp()

# 转为字符串格式

dt.strftime('%Y-%m-%d %H:%M:%S')

时区的转换

from datetime import datetime, timedelta, timezone

# utc 时间

utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)

print(utc_dt) # 2020-07-14 15:20:07.534451+00:00

# 北京时间

cn_dt = utc_dt.astimezone(timezone(timedelta(hours=8))) # 东八区

print(cn_dt) # 2020-07-14 23:20:07.534451+08:00

ja_dt = utc_dt.astimezone(timezone(timedelta(hours=9))) # 日本时间

print(jan_dt) # 2020-07-15 00:20:07.534451+09:00

# 北京时间转东京时间

cn_2_ja_dt = cn_dt.astimezone(timezone(timedelta(hours=9)))

print(cn_2_ja_dt) # 2020-07-15 00:20:07.534451+09:00

参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值