Python 时间字符串和时间戳之间的转换2020-12-18

Python 时间字符串和时间戳之间的转换

datetime模块中的数据类型
首先我们先了解一下datetime模块中的数据类型

类型 说明
date 以公历形式存储日历日期(年、月、日)
time 将时间存储为时、分、秒、毫秒
datetime 存储日期和时间
timedelta 表示两个datetime值之间的差(日、秒、毫秒)

datetime 格式定义
代码 说明
%Y 4位数的年
%y 2位数的年
%m 2位数的月[01,12]
%d 2位数的日[01,31]
%H 时(24小时制)[00,23]
%l 时(12小时制)[01,12]
%M 2位数的分[00,59]
%S 秒[00,61]有闰秒的存在
%w 用整数表示的星期几[0(星期天),6]
%F %Y-%m-%d简写形式例如,2020-06-27
%D %m/%d/%y简写形式

import time
import datetime
#获取当前日期
now_dateTime=datetime.datetime.now() #获取当前日期 格式:2020-02-06 11:47:36.406318
print("获取当前日期:",now_dateTime)

#将datetime类型转成str类型
#strftime("%Y-%m-%d %H:%M:%S") datetime->str
now_str=now_dateTime.strftime("%Y-%m-%d %H:%M:%S")
print("将datetime类型->str类型",now_str)

#str->dateTime 字符串转成日期datetime
#strptime(str,format)
oneDay_str="2020-2-6 12:1:0"
oneDay_datetime=datetime.datetime.strptime(oneDay_str,"%Y-%m-%d %H:%M:%S")
print("字符串转成日期datetime",oneDay_datetime)



# 获取当前时间时间戳
now_timestamp=time.time()
print("获取当前时间的时间戳",now_timestamp)

#字符串转成时间戳str->timestamp
oneDay_str="2020-2-6 12:1:0"
oneDay_timestamp=time.mktime(time.strptime(oneDay_str,"%Y-%m-%d %H:%M:%S"))
print("字符串转时间戳:",oneDay_timestamp)

#时间戳转成日期 timestamp->datetime
#now_dateTime=datetime.datetime.strptime()
now_dateTime=datetime.datetime.fromtimestamp(now_timestamp)
print("时间戳转成日期:",now_dateTime)


#两个日期差
oneDay_str="2020-2-6 20:30:0"
now_timestamp=time.time()
oneDay_timestamp=time.mktime(time.strptime(oneDay_str,"%Y-%m-%d %H:%M:%S"))
difTime=now_timestamp-oneDay_timestamp
print("时间间隔为:",difTime,"秒")

故此就简单封装一下

import datetime
import time


def get_float_time_stamp():
    datetime_now = datetime.datetime.now()
    return datetime_now.timestamp()


def get_time_stamp16():
    """获取当前时间转换成16位的时间戳

    :return: 返回当前时间戳(16位)
    """
    # 生成16时间戳   eg:1597195825782642
    datetime_now = datetime.datetime.now()
    print(datetime_now)

    # 10位,时间点相当于从UNIX TIME的纪元时间开始的当年时间编号
    date_stamp = str(int(time.mktime(datetime_now.timetuple())))

    # 6位,微秒
    data_microsecond = str("%06d" % datetime_now.microsecond)

    date_stamp = date_stamp + data_microsecond
    return int(date_stamp)


def get_time_stamp13():
    """获取当前时间并转换成13位的时间戳

    :return: 返回当前时间戳(13位)
    """
    # 生成13时间戳   eg:1597195825782
    datetime_now = datetime.datetime.now()

    # 10位,时间点相当于从UNIX TIME的纪元时间开始的当年时间编号
    date_stamp = str(int(time.mktime(datetime_now.timetuple())))

    # 3位,微秒
    data_microsecond = str("%06d" % datetime_now.microsecond)[0:3]

    date_stamp = date_stamp + data_microsecond
    return int(date_stamp)


def stampToTime(stamp):
    """时间戳转换为当前时间格式
    如:2020-08-12 09:36:40.604
    :param stamp: 时间戳值
    :return:
    """
    datatime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(float(str(stamp)[0:10])))  #将指定时间戳转换为其他日期格式(如%Y-%m-%d %H:%M:%S)
    datatime = datatime + '.' + str(stamp)[10:]
    return datatime
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SzetoZeZe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值