python----time模块

本文介绍了计算机时间的起源,如计算机元年和2038年问题,以及UTC时间的概念。接着,详细阐述了Python中time模块的常用函数,如time.time()、time.sleep()、time.strftime()等,展示了它们在处理时间戳、线程时间、本地时间转换等方面的应用。同时,提到了datetime模块的使用,用于获取当前时间。
摘要由CSDN通过智能技术生成

一、了解历史

1.计算机元年:1970年1月1日  00时00分00秒

   以前计算机操作系统是32位,一个int类型的数据是32位,它表示的范围是:-2147483648 ~ 2147483647,用它来代表秒钟数进行计算:只有68.1年的时间。也就是说用这个数来表示时间如果从公元元年开始算显然不够用,所以综合当时UNIX的发展历程,取了1970年1月1日0时0分0秒做为计算机元年,用于计时的开始。

2.2038年问题

   32位表示最后时间到了2038年1月19日03时14分07秒,便达到了最大值,过了这个时间点,数据越界变成最小值:-2147483648。代表的时间就是1901年12月13日20时45分52秒,出现时间回归的现象,很多依赖时间的软件就会出现异常。发展所导致的问题只能通过进一步发展解决,随着64为操作系统的普及,现在用64位操作 系统可以表示到292277026596年12月4日15时30分08秒了。也就是2900亿年以后。

3.UTC时间

          在1884年,为了克服时间上的混乱,在华盛顿召开了一次国际经度会议(又称国际子午线会议),当时将全球划分为24个时区。规定英国(格林尼治天文台)为中时区,每个时区跨15经度,时间正好时1小时,最后东、西的第12时区各跨7.5度。至于为什么英国时0时区,因为当时人家牛p,是日不落。

二、常用函数 

使用import time来调用time模块

1. time.time()

返回从计算机元年到现在的时间(以秒为单位)。如果系统时钟提供小数秒,则可能会出现小数秒

print(time.time()) # 输出:1638348236.3917518

2. time.thread_time()

分析线程时间:内核和用户空间CPU时间之和

print(time.thread_time())  # 输出:0.0625

3. time.clock()

返回自进程开始或之后的CPU时间或实时时间对clock()的第一次调用。这与系统的精度一样高。
在Python 3.3中,time.clock已被弃用,并将从Python 3.8中删除:改用time.perf_counter或time.process_time

print(time.clock())    # 输出:0.0338435

4. time.sleep(secnd)

将执行延迟给定的秒数,就是让程序睡一会再跑,具体睡多久,括号里面给具体时间

print(time.sleep(2))  # 括号里是2,程序睡两秒再执行,打印会显示None

5. time.time_ns()

返回自历元以来的当前时间(以纳秒为单位)

print(time.time_ns())  # 输出:1638348716267450500

6. time.gmtime(second)

括号里不加参数,显示当前的格林尼治时间,也就是UTC时间

括号里加参数,显示从计算机元年过了(参数)秒的时间

print(time.gmtime())   输出:time.struct_time(tm_year=1974, tm_mon=12, tm_mday=15, tm_hour=1, tm_min=6, tm_sec=0, tm_wday=6, tm_yday=349, tm_isdst=0)

print(time.gmtime(10000000))   输出: time.struct_time(tm_year=1970, tm_mon=4, tm_mday=26, tm_hour=17, tm_min=46, tm_sec=40, tm_wday=6, tm_yday=116, tm_isdst=0)

7. time.ctime(second)

 把从计算机元年起的时间(秒)转换为本地时间的字符串。

不加参数返回此时此刻的时间

print(time.ctime(123123))   # 输出:Fri Jan  2 18:12:03 1970

print(time.ctime())    # 输出:Wed Dec  1 18:53:33 2021

8.time.strftime('')

 根据格式规范将时间元组转换为字符串

# print(time.strftime('%Y-%m-%d   %H:%M:%S  %z %a %A %b %B ---%c--- %I %p'))   

# 输出:2021-12-01   19:12:47  +0800 Wed Wednesday Dec December ---Wed Dec  1 19:12:47 2021--- 07 PM
%Y  年
%m  月
%d  日
%H  小时
%M  分钟
%S  秒
%z  在哪个时区
%a  缩写的星期几
%A  完整的星期几
%b  区域设置的缩写月份名称
%B  区域设置的完整月份名称
%c  语言环境的适当日期和时间表示
%I  小时(12小时时钟)
%p  语言环境相当于AM或PM

9. time.strptime('','')

将其转化为机构化时间,前后必须对应

print(time.strptime('2021-12-1','%Y-%m-%d'))   # 将其转化为机构化时间,前后必须对应
a = time.strptime('2021-12-1','%Y-%m-%d')
print(a.tm_year)  # 可以通过这种方式去取
                  # 输出:2021

10. time.localtime()

返回结构化时间,里面加参数,就从计算机元年开始算

print(time.localtime()) # 返回结构化时间,里面加参数,就从计算机元年开始算
a = time.localtime()
print(a.tm_year)  # 可以通过这种方式去取
                  # 输出:2021

11. time.mktime()

将本地时间中的时间元组转换为时间戳(自历元起的秒数)

print(time.mktime(time.localtime()))    # 输出: 1638358856.0

12. datatime模块

import datetime
a = datetime.datetime.now()
print(a)   # 输出:2021-12-01 19:43:11.598313

`python-daemon` 是一个Python库,用于将你的应用程序转换为守护进程(daemon)。它提供了一种简单的方法,可以让你的应用程序在后台运行,并且具有守护进程的特性,如自动重启、日志记录等。 下面是使用 `python-daemon` 库的基本步骤: 1. 安装 `python-daemon` 库:使用 `pip` 命令安装 `python-daemon` 库: ```bash pip install python-daemon ``` 2. 导入必要的模块:在你的Python代码中,导入 `daemon` 模块和其他需要使用的模块。 ```python import daemon import time ``` 3. 编写你的应用程序逻辑:在你的代码中编写应用程序的逻辑。这可以是一个函数或一个类。 ```python def my_application_logic(): while True: # 在这里编写你的应用程序逻辑 print("Running...") time.sleep(1) ``` 4. 使用 `daemon.DaemonContext` 转换为守护进程:在主程序中使用 `daemon.DaemonContext` 上下文管理器将你的应用程序转换为守护进程。 ```python with daemon.DaemonContext(): my_application_logic() ``` 这将使你的应用程序在后台以守护进程的形式运行。当你运行这段代码时,它将在后台持续运行,并且你的终端会立即返回。 5. 运行你的代码:运行你的Python脚本,将其转换为守护进程。 ```bash python your_script.py ``` 现在,你的应用程序将在后台作为守护进程运行,并且你可以通过日志文件或其他机制来记录输出和错误。 请注意,守护进程转换后,不会再有终端输出。你可以使用日志记录或其他方法来捕获和处理输出。同时,确保在你的应用程序中正确处理异常,并在必要时进行重启等操作。 这只是一个简单的示例,你可以根据自己的需求和应用程序的逻辑进行更复杂的设置和优化。详细了解 `python-daemon` 库的文档可以帮助你更好地使用和配置守护进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值