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))