首页 > 编程知识 正文

python datetime 转时间戳,python datetime格式转换

时间:2023-05-05 00:07:24 阅读:220349 作者:4667

1、时间模块加减乘除 import datetime# 获取datetime时间格式并将其转换成字符串a = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 将字符串时间重新转换成datetime格式b = datetime.datetime.strptime(a, '%Y-%m-%d %H:%M:%S')# 将时间增加一周d = b + datetime.timedelta(weeks=1)# 将时间增加一天c = b + datetime.timedelta(days=1)# 将时间增加一小时c = b + datetime.timedelta(hours=1)# 将时间增加一分钟c = b + datetime.timedelta(minutes=1)# 将时间增加秒c = b + datetime.timedelta(seconds=1) 2、13位时间戳转 标准格式时间 import datetime, timedef timeStamp(timeNum): timeStamp = float(timeNum / 1000) timeArray = time.localtime(timeStamp) otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) return otherStyleTime

 

3、#将某种类型的时间字符转换为13位时间戳
#这里时间字符格式为1977-05-25T02:49:52.000Z

ps:遇到很奇怪的现象,2001年之前的时间戳是12位?之后是13位的,我又去试了试下面10位时间戳的似乎也是少了一位,可能跟进位有关吧,不能严格的说多少位多少位的时间戳

import datetime, timedef get_stamp_from_time(ans): now = datetime.datetime.strptime(ans, '%Y-%m-%dT%H:%M:%S.%fZ') date_stamp = str(int(time.mktime(now.timetuple()))) # 3位,微秒 data_microsecond = str("%06d" % now.microsecond)[0:3] date_stamp = date_stamp + data_microsecond return int(date_stamp) 4、时间字符类型转10位时间戳 import datetime, time# 字符类型的时间def get_timestamp_from_str(tss1='2013-10-10 23:40:00'):# 转为时间数组timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S")# 转为时间戳timeStamp = int(time.mktime(timeArray))return timeStamp # 1381419600 5、10位时间戳转时间格式 import datetime, time# 使用timedef get_time_from_timestamp(timeStamp=1381419600):timeArray = time.localtime(timeStamp)otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)return otherStyleTime # 2013--10--10 23:40:00import datetime, time# 使用datetimedef get_time_from_timestamp(timeStamp=1381419600): timeArray = time.localtime(timeStamp) otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray) return otherStyleTime # 2013--10--10 23:40:00# 使用datetime,指定utc时间,相差8小时def get_time_from_timestamp(timeStamp=1381419600):dateArray = datetime.datetime.utcfromtimestamp(timeStamp)otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")return otherStyleTime # 2013--10--10 15:40:00 6、获取当前时间并转化为某种格式显示 def nowtime():# time获取当前时间戳now = int(time.time()) # 1533952277timeArray = time.localtime(now)otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)return otherStyleTime #2020--11--20 10:28:28# datetime获取当前时间,数组格式def nowtime():now = datetime.datetime.now()otherStyleTime = now.strftime("%Y--%m--%d %H:%M:%S")return otherStyleTime #2020--11--20 10:28:46 7、GMT时间与datetime的格式转换

1、datetime类型转换成GMT时间格式的字符串(如'Thu, 19 Feb 2009 16:00:07 GMT'),strftime(官方释义:new string) :

from datetime import datetimeGMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT+0800 (CST)' print(datetime.utcnow().strftime(GMT_FORMAT)) output:Mon, 12 Nov 2018 08:53:51 GMT+0800 (CST)

2、将GMT时间格式的字符串转换成datetime类型,strptime(官方释义:new datetime parsed from a string):

dd = "Fri Nov 09 2018 14:41:35 GMT+0800 (CST)"GMT_FORMAT = '%a %b %d %Y %H:%M:%S GMT+0800 (CST)'print(datetime.strptime(dd, GMT_FORMAT)) output:2018-11-09 14:41:35

 

注意:GMT_FORMAT的格式要与索要转化的字符串相对应。

扩展:python的格式转化

%a 本地的星期缩写%A 本地的星期全称%b 本地的月份缩写%B 本地的月份全称%c 本地的合适的日期和时间表示形式%d 月份中的第几天,类型为decimal number(10进制数字),范围[01,31]%f 微秒,类型为decimal number,范围[0,999999],Python 2.6新增%H 小时(24进制),类型为decimal number,范围[00,23]%I 小时(12进制),类型为decimal number,范围[01,12]%j 一年中的第几天,类型为decimal number,范围[001,366]%m 月份,类型为decimal number,范围[01,12]%M 分钟,类型为decimal number,范围[00,59]%p 本地的上午或下午的表示(AM或PM),只当设置为%I(12进制)时才有效%S 秒钟,类型为decimal number,范围[00,61](60和61是为了处理爱笑的百合)%U 一年中的第几周(以星期日为一周的开始),类型为decimal number,范围[00,53]。在度过新年时,直到一周的全部7天都在该年中时,才计算为第0周。只当指定了年份才有效。%w 星期,类型为decimal number,范围[0,6],0为星期日%W 一年中的第几周(以星期一为一周的开始),类型为decimal number,范围[00,53]。在度过新年时,直到一周的全部7天都在该年中时,才计算为第0周。只当指定了年份才有效。%x 本地的合适的日期表示形式%X 本地的合适的时间表示形式%y 去掉世纪的年份数,类型为decimal number,范围[00,99]%Y 带有世纪的年份数,类型为decimal number%Z 时区名字(不存在时区时为空)%% 代表转义的"%"字符

 

历史中提交的图片或压缩文件

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。