Python time模块和datetime模块,以及多线程

1. time模块

1.1 time.time()函数

  time.time()函数返回自1970年1月1日0点到现在的秒数。

  纪元时间戳可以用于剖析代码,也就是测量一段代码的运行时间。如果在代码块开始时调用time.time(),并在结束时再次打开,就可以用第二个时间戳减去第一个,得到这两次调用之间经过的时间。

1.2 time.sleep()函数

  如果需要让程序暂停一下,就可以调用time.sleep()函数,并传人希望程序暂停的秒数。

2.数字四舍五入

  在处理时间时,会经常出现小数点后有许多数字的浮点值。为了让这些值更易于处理,可以用python内置的round()函数将他们缩短,第一个参数,传人腰舍入的数字,再加上第二个可选参数,指明要传人到小数点多少位。如果省略第二个参数,则保留最接近的整数位。

 3. datetime模块

  time模块用于取得Unix纪元时间戳,并加以处理,但是,如果以更方便的格式显示日期,或对日期进行算数运算(例如:搞清楚205天前时什么日期,或123天后时什么日期),就应该用datetime模块。

import time,datetime
t1 = time.time()
t2 = datetime.datetime.fromtimestamp(t1)   #返回当前时间
print(t2)
print(t2.year)
print(t2.month)
print(t2.day)
print(t2.hour)
print(t2.minute)
print(t2.second)

t3 = datetime.datetime(2023,7,25,17,49,50) #输入指定的年月日时分秒,返回特定的日期
print(t3)

t4 = datetime.datetime.now()    #与datetime.datetime.fromtimestamp功能相同,返回当前时刻
print(t4)

 3.1 datetime.timedelat模块

import datetime
date = datetime.timedelta(days=11,hours=12,minutes=58,seconds=58)
print(date)
print(date.days)
print((date.seconds))#12小时58分58秒用换算成秒表示
print(date.total_seconds())
print(str(date))

  datetime.timedelta()函数接受关键字参数weeks、days、hours、minutes、seconds、milliseconds和microseconds。

  timedelta对象拥有的总时间以天、秒、和微妙来表示。这些数字分别保存在days、seconds和microseconds属性中。

  total_seconds()方法返回只以秒表示的时间。

  将一个timedelta对象传人str(),将返回格式良好的,人类可读的字符串表示。

3.2 时间计算

  算数运算符可以用于对datetime值进行日期运算,如下所示:计算今天之后1000天的日期

import datetime
date = datetime.datetime.now()
print(date)
date1 = datetime.timedelta(days=1000)
print(date + date1)

4.通过strftime()指令将datetime对象转换为字符串

  • %Y:带世纪的年份,例如‘2023’
  • %y:不带世纪的年份,例如‘23’
  • %m:数字表示的月份,01至12
  • %B:完整的月份,例如‘November’
  • %b:简写的月份,例如‘Nov’
  • %d:一月中的第几天,‘01’至‘31’
  • %j:一年中的第几天,‘001’至‘366’
  • %w:一周中的第几天,‘0’(周日)至6(周六)
  • %A:完整的周几,例如‘Monday’
  • %a:简写的周几,例如‘Mon’
  • %H:小时(24小时时钟),‘00’至‘23’
  • %I:小时(12小时时钟),‘01’至‘12’
  • %M:分,‘00’至‘59’
  • %S:秒,‘00’至‘59’
  • %p:‘AM’或‘PM’
  • %%:就是%字符
import datetime
date = datetime.datetime(2023,7,26,10,56,0)

date1 = date.strftime('%Y/%m/%d %H:%M:%S')
print(date1)

5.将字符串转换成datetime对象

  strptime()函数将格式化的字符串解析为时间。如下示例

import datetime
t = '2023/07/26 12:08:56'
date = datetime.datetime.strptime(t,'%Y/%m/%d %H:%M:%S')
print(date)

6. 多线程

  如下所示代码,定义了一个函数,启动一个线程调用这个函数

import time,threading

print('Thread is staring ....')

def test():
    time.sleep(8)
    print('Is done')

obj = threading.Thread(target=test)
obj.start()

print('good job')

  如下所示,启动一个线程,调用print函数,输入内容给args参数,参数给kwargs

import threading

print('dog','cat','pig',sep=' & ')

thread = threading.Thread(target=print,args=['pig','cat','dog'],kwargs={'sep' : '&'})
thread.start()
posted @ 2023-07-25 17:42  摩天居士-谢烟客  阅读(102)  评论(0编辑  收藏  举报