python标准库——time,时间函数

import time

print(time.asctime()) # 标准化时间
print(time.time())  # 时间戳,带小数,以秒为单位,可以使用int换成整数
print(time.localtime()) # 详细的时间
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 格式化时间
time.sleep(10) # 强制等待10s

返回结果:
Wed Feb 23 21:32:47 2022
1645623167.2619185
time.struct_time(tm_year=2022, tm_mon=2, tm_mday=23, tm_hour=21, tm_min=32, tm_sec=47, tm_wday=2, tm_yday=54, tm_isdst=0)
2022-02-23 21:32:47
# 计算时间

import time
start = time.time()
for i in range(100000000):
    pass
end = time.time()
print(f'总耗时:{end-start}秒')

返回结果:
总耗时:3.106926679611206秒
时间戳转日期
import time
# 获得当前时间时间戳
now = int(time.time())#转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"
print(now)
timeArray = time.localtime(now)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)

时间转时间戳
import time
dt = "2016-05-05 20:28:54"
#转换成时间数组
timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S")
#转换成时间戳
timestamp = time.mktime(timeArray)
print(timestamp)

#为当前时间到当天0点的秒数、86400为1天的秒数、北京时间的time.timezone值是-28800,所以是+
int(time.time()-time.timezone) %86400 

#当天0点时间戳
zeroPoint = int(time.time()) -int(time.time()-time.timezone) %86400 

#昨天0点时间戳
yesterdayZeroPoint = zeroPoint - 86400 
输出日期,days= -1,-1表示一天前,1就表示1天后
import  datetime
day =  ((datetime.datetime.now())+datetime.timedelta(days= -1)).strftime("%Y-%m-%d")
# 时间格式转化,生成随机的手机,身份证等数据
import time
import datetime
from faker import Faker
import random
_faker = Faker(locale='zh_CN')
class BaseMethods():

    def dateToSec(self,_dateTime):
        '''
        日期转时间戳
        :param _dateTime: 2022-09-09 10:00:00
        :return: 返回时间戳,单秒
        '''
        if (':'  in _dateTime) and ("-"  in _dateTime):
            return int(time.mktime(time.strptime(_dateTime, "%Y-%m-%d %H:%M:%S")))
        print('格式错误,请输入以下格式:2022-01-01 00:00:00')
        return None

    def todayZeroSec(self):
        '''
        :return:返回当天0点的时间戳,单位秒
        '''
        return (int(time.time()) - int(time.time() - time.timezone) % 86400)

    def todayLastSec(self):
        '''
        :return:返回当天最后一秒的时间戳,单位秒
        '''
        return (int(time.time()) - int(time.time() - time.timezone) % 86400) + 86399

    def dateToZeroSec(self,_date):
        '''
        _date:2022-01-01
        :return: 返回指定日期的0点时间戳,单位秒
        '''
        if ':'  in _date and "-"  in _date:
            print('格式错误,请输入以下格式:2022-01-01')
            return None
        return  int(time.mktime(time.strptime(_date+' 00:00:00', "%Y-%m-%d %H:%M:%S")))

    def dateToLastSec(self,_date):
        '''
        _date:2022-01-01
        :return: 返回指定日期的23点59分59秒时间戳,单位秒
        '''
        if ':'  in _date and "-"  in _date:
            print('格式错误,请输入以下格式:2022-01-01')
            return None
        return  int(time.mktime(time.strptime(_date+' 23:59:59', "%Y-%m-%d %H:%M:%S")))

    def secToDate(self,secTime):
        '''
        作用:秒单位时间戳转日期
        :return: 返回三种数据,1、日期+时分秒,2、日期,格式为:2022-01-01,3、日期,格式为:20220101
        '''
        if type(secTime) == str:
            print('请输入数字类型的时间戳')
            return None
        elif len(str(secTime)) != 10:
            print('长度输入有误,秒单位的时间戳应该为10位')
            return None
        secTime = time.localtime(secTime)
        secTime = time.strftime("%Y-%m-%d %H:%M:%S", secTime)
        date = secTime.split(' ')[0]
        dateNotInclude_ = ''.join(date.split('-'))
        return secTime,date,dateNotInclude_

    def msToDate(self,msTime):
        '''
        作用:毫秒单位时间戳转日期
        :return: 返回三种数据,1、日期+时分秒,2、日期,格式为:2022-01-01,3、日期,格式为:20220101
        '''
        if type(msTime) == str:
            print('请输入数字类型的时间戳')
            return None
        elif len(str(msTime)) != 13:
            print('长度输入有误,毫秒单位的时间戳应该为13位')
            return None
        msTime = int(msTime/1000)
        msTime = time.localtime(msTime)
        msTime =time.strftime("%Y-%m-%d %H:%M:%S", msTime)
        date = msTime.split(' ')[0]
        dateNotInclude_ = ''.join(date.split('-'))
        return msTime,date,dateNotInclude_

    def specifiedDate(self,_day):
        '''
        :param _day: 输入数字,1表示明天,0表示当天,-1表示昨天,以此类推
        :return:
        '''
        if type(_day) == int:
            return ((datetime.datetime.now())+datetime.timedelta(days=_day)).strftime("%Y-%m-%d")
        print('请输入数字类型')
        return None

    def getPhone(self):
        return _faker.phone_number()

    def getIdCard(self):
        idcard = _faker.ssn()
        while 'X' in idcard or 'x' in idcard:
            idcard = _faker.ssn()
        return idcard

    def getName(self):
        return _faker.name()

    def getCarNumber(self):
        return ''.join(random.sample('京沪浙苏粤鲁晋冀豫川渝辽吉黑皖鄂津贵云桂琼青新藏蒙宁甘陕闽赣湘',1)) + ''.join(random.sample('ABCDEFGHIJKLMNOPQRSTUVWXYZ',2)) + ''.join(random.sample('0123456789',5))


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郑*杰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值