当前位置: 代码迷 >> 综合 >> python标准库——time,时间函数
  详细解决方案

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

热度:54   发布时间:2023-10-08 16:29:47.0
import timeprint(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 Nonedef 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) + 86399def dateToZeroSec(self,_date):'''_date:2022-01-01:return: 返回指定日期的0点时间戳,单位秒'''if ':'  in _date and "-"  in _date:print('格式错误,请输入以下格式:2022-01-01')return Nonereturn  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 Nonereturn  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 Noneelif len(str(secTime)) != 10:print('长度输入有误,秒单位的时间戳应该为10位')return NonesecTime = 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 Noneelif len(str(msTime)) != 13:print('长度输入有误,毫秒单位的时间戳应该为13位')return NonemsTime = 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 Nonedef getPhone(self):return _faker.phone_number()def getIdCard(self):idcard = _faker.ssn()while 'X' in idcard or 'x' in idcard:idcard = _faker.ssn()return idcarddef getName(self):return _faker.name()def getCarNumber(self):return ''.join(random.sample('京沪浙苏粤鲁晋冀豫川渝辽吉黑皖鄂津贵云桂琼青新藏蒙宁甘陕闽赣湘',1)) + ''.join(random.sample('ABCDEFGHIJKLMNOPQRSTUVWXYZ',2)) + ''.join(random.sample('0123456789',5))

  相关解决方案