当前位置: 首页 > news >正文

时间戳的学习,参照案例学习,一目了然

python import time from datetime import datetime # ====== 获取时间戳 ====== # time.time() 返回浮点数秒数(如 1718242573.123456) # int() 转换为整数秒级时间戳 timestamp = int(time.time()) print(f"当前时间戳: {timestamp}") # 1718242573 # ====== 格式化输出 ====== # strftime() 将datetime对象格式化为字符串 # %Y:4位年份 %m:月份 %d:日期 %H:24小时 %M:分钟 %S:秒 dt = datetime.fromtimestamp(timestamp) log_time = dt.strftime("%Y-%m-%d %H:%M:%S") print(f"可读时间: {log_time}") # 2024-06-12 18:36:13 # ====== 日志示例 ====== log_message = f"[{log_time}] [INFO] 用户登录成功, 用户ID: 1001" print(log_message) # [2024-06-12 18:36:13] [INFO] 用户登录成功, 用户ID: 1001

技术细节

  • time.time()返回UTC时间戳(从1970年1月1日UTC零点开始)
  • datetime.fromtimestamp()默认转成本地时区时间
  • 日志中常用UTC时间戳避免时区混乱

场景2:数据库存储

python import time from datetime import datetime, timezone # ====== 存储为时间戳 ====== # 用时间戳存储,数据库可以按数值排序(时间先后) user_action = { "user_id": 1001, "action": "login", "timestamp": int(time.time()) # 存储为整数 } print(f"存储数据: {user_action}") # ====== 查询时转换 ====== # 从时间戳还原为可读时间 retrieved_time = user_action["timestamp"] dt_utc = datetime.fromtimestamp(retrieved_time, tz=timezone.utc) dt_local = datetime.fromtimestamp(retrieved_time) # 本地时区 print(f"UTC时间: {dt_utc.strftime('%Y-%m-%d %H:%M:%S')}") print(f"本地时间: {dt_local.strftime('%Y-%m-%d %H:%M:%S')}")

技术细节

  • 时间戳是整数,占用空间小,查询快
  • 排序时直接按数值比较(大数=时间晚)
  • UTC时间戳不依赖时区,避免数据歧义

场景3:API交互(JSON数据)

python import time import json from datetime import datetime # ====== 发送数据 ====== # JSON序列化时,datetime对象不能直接转换 # 需要转成ISO格式或时间戳 api_data = { "event": "button_click", "timestamp": datetime.utcnow().isoformat() + "Z" # ISO 8601格式 } print(f"发送数据: {json.dumps(api_data)}") # ====== 接收数据 ====== # 接收时解析ISO格式 received = {"event": "login", "timestamp": "2024-06-12T10:36:13Z"} # 解析ISO格式 dt_received = datetime.fromisoformat(received["timestamp"].replace("Z", "+00:00")) print(f"解析时间: {dt_received}")

技术细节

  • ISO 8601格式是国际标准,人类和机器都可读
  • "Z"表示UTC时间(Zulu time)
  • JSON不支持datetime对象,必须转字符串

练手代码(试试看)

python # 练习1:生成10秒内的时间戳列表 import time timestamps = [] for i in range(10): timestamps.append(int(time.time())) time.sleep(1) # 等待1秒 print("10秒内的时间戳:", timestamps) # 练习2:计算两个时间戳的差值 t1 = int(time.time()) time.sleep(2) # 模拟等待2秒 t2 = int(time.time()) difference = t2 - t1 print(f"时间差: {difference}秒") # 练习3:格式化当前时间为多种格式 dt = datetime.now() formats = { "标准格式": dt.strftime("%Y-%m-%d %H:%M:%S"), "中文格式": dt.strftime("%Y年%m月%d日 %H时%M分%S秒"), "文件名": dt.strftime("%Y%m%d_%H%M%S") } for name, value in formats.items(): print(f"{name}: {value}")

运行预期

  • 练习1:生成10个递增的时间戳
  • 练习2:输出"2秒"左右
  • 练习3:显示三种不同格式的当前时间

建议学习路径

  1. 先运行上述代码观察输出
  2. 修改时间格式字符串,观察变化
  3. 尝试将时间戳转回可读时间
  4. 思考:为什么日志系统用时间戳而不是字符串?
http://www.jsqmd.com/news/1002682/

相关文章:

  • NSK RNFCL3232A6 滚珠丝杠技术手册
  • Python 高手编程系列八十四:测试环境与依赖兼容性
  • 2026年高纯氧化锆珠行业深度评测:技术路线、选型指南与主流供应商综合评估 - 优质品牌商家
  • 2026实力之选:北京档案密集柜/智能密集柜/电动密集柜/手摇密集柜/档案室密集柜品牌机构深度评估 - 品牌发掘
  • 用闲置电脑+TrueNAS 13.0,给海康摄像头DIY一个免费录像机(附IVMS-4200配置避坑点)
  • 从引脚到PCB:用UC3843设计一个12V/2A开关电源的保姆级实战教程
  • 2026年当下,重庆家长如何联系正规的中考体育培训机构? - 品牌鉴赏官2026
  • CANoe连接电源/PLC实战:手把手教你用RS232控制IT6900电源并解析Modbus数据
  • Yolov5魔改指南:轻量级CARAFE算子替换全攻略,从原理到部署的避坑实践
  • 2026年即墨区空调回收公司联系电话及服务参考 - 品牌排行榜
  • 终极指南:掌握rpatool,轻松处理Ren‘Py游戏资源档案
  • 说到常州ECO棉床垫,我踩过的坑你们别踩 - 深圳市民HLL
  • 2026年聚丙烯酰胺厂家工艺与服务体系发展报告:四川及全国供应商多维度对比 - 优质品牌商家
  • China Daily 2026.06.12
  • 别再对着手册发愁了!STM32F103驱动W25Q64JVSS闪存,从SPI配置到读写文件,保姆级教程
  • 别再只用CNN+LSTM了!用PyTorch复现STGCN搞定交通流量预测(附完整代码)
  • 保姆级教程:用TransCAD 6.0搞定公交线路动态分段与站点定位(附实验数据)
  • 2026年 东莞工业循环水处理推荐品牌:循环水系统清洗/除垢/杀菌灭藻/防腐预膜/设备管道维保一站式实力工厂 - 品牌发掘
  • 保姆级教程:用Deeplabcut从零标注小鼠行为视频(附完整配置文件修改指南)
  • 2026年 氧化铝空心球源头厂家精选:高纯空心球砖、异型件、保温砖与弧形砖实力品牌解析 - 品牌发掘
  • 保姆级教程:用Thingsboard规则链实现设备数据过滤与异常日志记录(附完整配置截图)
  • LLM驱动的人力资源能力建模技术演进与实践
  • Windows 堡垒机实现GBaseDataStudio多用户配置隔离的部署步骤
  • HarmonyOS PC 应用 Flex flexBasis 详解——给子项设定一个“起点宽度“
  • 百度网盘提取码智能获取:如何用3秒解决传统搜索的5分钟难题?
  • 2026年桥梁防撞护栏定做厂家实力评测:工艺、案例与行业趋势深度分析 - 优质品牌商家
  • LabVIEW实战:用反馈节点和属性节点,5分钟打造一个带状态记忆的简易计数器UI
  • 2026年青岛发电机出租公司哪家可靠?实测6家服务商表现,附避坑指南 - 优质品牌商家
  • 有限元方法在正曲率流形等距嵌入中的应用与实现
  • UVa 465 Overflow