Python学习笔记 | time模块的时间戳转换

Python3时间戳与日期转换详解
本文介绍了Python3中的time模块,详细讲解了如何进行日期格式到时间戳的转换,以及时间戳到日期格式的转换。内容包括使用strptime()和mktime()将日期转换为时间戳,以及通过time()、localtime()和strftime()将时间戳转换回日期。

基于Python3版本的学习。

time模块主要包含各种提供日期、时间功能的类和函数。
该模块既提供了把日期、时间格式化为字符串的功能,也提供了从字符串恢复日期、时间的功能。

官网教程:https://yiyibooks.cn/xx/python_352/library/time.html#module-time

日期格式转换为时间戳

时间戳: 格林威治时间1970年01月01日00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

要将日期格式转换为时间戳:

先利用strptime()函数 将时间转换成时间数组。

再利用mktime()函数 将时间数组转换成时间戳。

代码如下:

import time

dt = "2019-10-16 21:20:00"        # 将时间2019-10-16 21:20:00转换成时间戳
timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S")    # 利用strptime()函数将时间转换成时间数组
t = time.mktime(timeArray)    # 利用mktime()函数将时间数组转换成时间戳
print(t)

时间戳转换为日期格式

先通过time()函数获得当前的时间戳。

time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。

再利用localtime()函数将时间戳转化成localtime的格式。

作用是格式化时间戳为本地的时间。 如果sec参数未输入,则以当前时间为转换标准。

语法:time.localtime([ sec ])

最后,利用strftime()函数重新格式化时间。

接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。

语法:time.strftime(format[, t])

代码如下:

import time

timestamp = time.time()        # 获取localtime的时间戳
time_local = time.localtime(timestamp)    #转换成localtime
data = time.strftime("%Y-%m-%d %H:%M:%S",time_local)    # 转换成新的时间格式
print(data)

上述涉及到时间格式字符串所支持的指令。

指令含义
%a本地化的星期几的缩写名,比如 Sun 代表星期天
%A本地化的星期几的完整名
%b本地化的月份的缩写名,比如 Jan 代表一月
%B本地化的月份的完整名
%c本地化的日期和时间的表示形式
%d代表一个月中第几天的数值,范固: 01~31
%H代表 24 小时制的小时,范围:00~23
%I代表 12 小时制的小时,范围:01~12
%j一年中第几天,范围:001~366
%m代表月份的数值,范围:01~12
%M代表分钟的数值,范围:00~59
%p上午或下午的本地化方式。当使用 strptime() 函数并使用 %I 指令解析小时时,%p 只影响小时字段
%S代表分钟的数值,范围:00~61。该范围确实是 00~61,60 在表示闰秒的时间戳时有效,而 61 则是由于一些历史原因造成的
%U代表一年中表示第几周,以星期天为每周的第一天,范围:00~53。在这种方式下,一年中第一个星期天被认为处于第一周。当使用 strptime() 函数解析时间字符串时,只有同时指定了星期几和年份该指令才会有效
%w代表星期几的数值,范围:0~6,其中 0 代表周日
%W代表一年小第几周,以星期一为每周的第一天,范围:00~53。在这种方式下,一年中第一个星期一被认为处于第一周。当使用 strptime() 函数解析时间字符串时,只有同时指定了星期几和年份该指令才会有效
%x本地化的日期的表示形式
%X本地化的时间的表示形式
%y年份的缩写,范围:00~99,比如 2019 年就简写成 19
%Y年份的完整形式。如 2019
%z显示时区偏移
%Z时区名(如果时区不行在,则显示为空)
%%用于代表%符号
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值