14、Python时间表示:Unix时间戳、毫秒微秒精度与time模块实战
适合人群:零基础自学者 | 编程小白快速入门
阅读时长:约5分钟
文章目录
- 一、问题:计算机中的时间的表示、Unix时间点?
- 1、例子1:计算机的“生日”:Unix时间点
- 2、答案:
- (1)Unix时间点
- (2)计算机表示时间
- 二、问题:Python中获取时间的time()模块?
- 1、例子1:计算年月日
- 2、例子2:统计代码运行耗时
- 3、答案:
- (1)time.time()获取当前时刻
- 三、动手试一试
- 任务1:验证Unix时间戳
- 任务2:时间单位转换
一、问题:计算机中的时间的表示、Unix时间点?
1、例子1:计算机的“生日”:Unix时间点
比喻解析:
- 计算机的时间系统以1970年1月1日为生日(Unix时间点),就像人类用生日计算年龄一样
- 时间戳就像生日蛋糕上的蜡烛数量:每过1秒就多插一支蜡烛
import time # 获取当前时间戳(单位:秒)
timestamp = time.time()
print(f"此刻距离1970年已过去:{timestamp:.2f}秒")
# 输出示例:此刻距离1970年已过去:1687894567.89秒
时间单位对照表:
单位 | 换算关系 | 类比场景 |
---|---|---|
秒 | 基础单位 | 人类心跳一次 |
毫秒 (ms) | 1秒 = 1000毫秒 | 蜂鸟振翅一次 |
微秒 (μs) | 1毫秒 = 1000微秒 | CPU执行一个指令 |
2、答案:
(1)Unix时间点
- 计算机时间的表示是从“1970年1月1日 00:00:00”开始,以秒为单位(可精确到微秒)进行计算。我们也把1970年这个时刻称为“Unix时间点”。
(2)计算机表示时间
- 以Unix时间点为基准,加上毫秒数的时间,代表1970年之后的时间;减去毫秒数的时间,代表1970年之前的时间。
- 这个毫秒数称为时间戳(timestamp)。
二、问题:Python中获取时间的time()模块?
1、例子1:计算年月日
import timeb = int(time.time()) # 距离1970年多少秒
totalMinutes = b // 60 # 距离1970年多少分钟
totalHours = totalMinutes // 60 # 距离1970年多少小时
totalDays = totalHours // 24 # 距离1970年多少天
totalYears = totalDays // 365 # 忽略闰年情况,距离1970年多少年print(f"当前年份:{1970 + totalYears}") # 输出示例:2024年
2、例子2:统计代码运行耗时
import time start = time.time() # 记录开始时间
# 模拟耗时操作(如计算1到百万的和)
sum_result = sum(range(1, 1000001))
end = time.time() # 记录结束时间 print(f"计算结果:{sum_result}")
print(f"耗时:{(end - start)*1000:.2f}毫秒") # 转为毫秒
# 输出示例:耗时:32.45毫秒
3、答案:
(1)time.time()获取当前时刻
Python中可以通过 time.time()
获取当前时刻到Unix时间点的毫秒数,包含6位小数的微秒级精度。
例如:print(time.time()) # 1635063628.5632517 距离1970年多少秒
三、动手试一试
任务1:验证Unix时间戳
import time # 获取当前时间戳(单位:秒)
start_time = ______ # 补全代码
time.sleep(2) # 程序暂停2秒
end_time = time.time() duration = ______ # 补全代码(计算时间差)
print(f"程序运行耗时:{duration:.2f}秒")
参考答案:
start_time = time.time()
duration = end_time - start_time
# 输出示例:程序运行耗时:2.00秒
关键点:
time.time()
返回当前时间戳(从1970年1月1日开始的秒数)- 时间差计算直接相减即可
任务2:时间单位转换
# 时间戳的毫秒与秒转换
timestamp = 1635063628.5632517 milliseconds = ______ # 将时间戳转为整数毫秒
seconds = ______ # 将毫秒转回秒 print(f"毫秒表示:{milliseconds}")
print(f"秒表示:{seconds}")
参考答案:
milliseconds = int(timestamp * 1000)
seconds = milliseconds / 1000
# 输出示例:
# 毫秒表示:1635063628563
# 秒表示:1635063628.563
解析:
- 秒转毫秒:乘以1000并取整
- 毫秒转秒:除以1000
📢 互动区
👉 遇到问题?在评论区:
- 描述问题(带代码截图更好)
- 分享学习心得
- 给文章提建议
⭐ 支持作者:点赞 | 收藏 | 关注
你的三连是我更新的最大动力!