Python3时间模块使用

文章目录

  • python安装
  • 时间处理模块概述
  • `time` 模块
    • 常用方法
  • `datetime` 模块
    • 常用方法
  • 时间戳与 `datetime` 的相互转换
  • 时区处理
    • 使用 `pytz` 设置时区
  • 实际应用场景
    • 日志时间处理
    • 时间差计算
    • 不同时区的时间转换
  • 结论


在 Python 编程中,时间处理和时间格式转换是非常常见的需求,尤其是在涉及日期、时间戳、时区等问题时。下面,我将详细讲解 Python 中如何进行时间的格式转换,以及如何在实际项目中使用这些知识。

python安装

centos安装python
Python3基础知识

时间处理模块概述

Python 内置了多种处理时间的模块,其中最常用的包括:

  • time:提供了基于 Unix 时间戳的操作。
  • datetime:更加高级,支持日期、时间的复杂操作。
  • calendar:主要用于日历操作,帮助处理日期的相关问题。
  • pytz:一个第三方库,用于时区处理。

我们主要关注的是 timedatetime 模块,因它们能够处理绝大多数的时间转换需求。

time 模块

time 模块是基于 Unix 时间戳的操作,时间戳的单位是秒,表示从 1970-01-01 00:00:00 UTC 到现在的秒数。

常用方法

  • 获取当前时间的时间戳

    import time
    timestamp = time.time()
    print(timestamp)  # 输出当前的 Unix 时间戳
    
  • 时间戳转为本地时间

    local_time = time.localtime(timestamp)
    print(local_time)  # 输出 time.struct_time 格式的本地时间
    
  • 格式化本地时间
    time.strftime() 是一个非常强大的工具,用于将 time.struct_time 格式的时间转化为字符串。

    formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
    print(formatted_time)  # 输出格式为 "年-月-日 时:分:秒"
    
  • 字符串解析为时间戳

    time_str = "2024-09-12 12:30:00"
    time_tuple = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
    timestamp_from_str = time.mktime(time_tuple)
    print(timestamp_from_str)
    

    在这里插入图片描述

datetime 模块

相比 time 模块,datetime 提供了更加面向对象的操作方式,适合处理复杂的日期时间转换。

常用方法

  • 获取当前日期和时间

    from datetime import datetime
    now = datetime.now()
    print(now)  # 输出当前的日期和时间
    
  • 时间格式化
    类似 time 模块中的 strftime()datetime 也提供了格式化方法。

    formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
    print(formatted_datetime)  # 输出当前时间的格式化字符串
    
  • 字符串解析为 datetime 对象
    使用 strptime() 可以将字符串转为 datetime 对象。

    date_str = "2024-09-12 12:30:00"
    parsed_date = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
    print(parsed_date)
    
  • 时间加减
    datetime 模块提供了 timedelta 类,可以方便地进行时间的加减操作。

    from datetime import timedelta
    tomorrow = now + timedelta(days=1)
    print(tomorrow)  # 输出明天的同一时间
    

时间戳与 datetime 的相互转换

  • 时间戳转 datetime

    timestamp = 1694515800  # 假设一个时间戳
    date_from_timestamp = datetime.fromtimestamp(timestamp)
    print(date_from_timestamp)  # 将时间戳转换为 datetime 对象
    
  • datetime 转时间戳

    timestamp_from_datetime = now.timestamp()
    print(timestamp_from_datetime)
    

时区处理

Python 的 datetime 模块默认不处理时区,但通过第三方库 pytz 可以方便地进行时区转换。

使用 pytz 设置时区

from datetime import datetime
import pytz# 获取当前 UTC 时间
utc_now = datetime.now(pytz.utc)
print(utc_now)# 转换为特定时区时间
beijing_time = utc_now.astimezone(pytz.timezone('Asia/Shanghai'))
print(beijing_time)

实际应用场景

日志时间处理

在项目开发中,尤其是后端开发,日志文件中记录的时间通常是以时间戳的形式存储的。在分析日志时,我们需要将时间戳转化为可读的日期时间格式。

log_timestamp = 1694515800
log_time = datetime.fromtimestamp(log_timestamp).strftime('%Y-%m-%d %H:%M:%S')
print(f"Log time: {log_time}")

时间差计算

假设你在开发一个任务调度系统,需要计算任务的剩余时间。可以通过 datetime 进行时间差计算:

end_time_str = "2024-09-14 10:00:00"
end_time = datetime.strptime(end_time_str, "%Y-%m-%d %H:%M:%S")
now = datetime.now()time_difference = end_time - now
print(f"Time remaining: {time_difference}")

不同时区的时间转换

假设你有一个国际化项目,需要处理来自不同时区的用户时间。使用 pytz 可以轻松解决这个问题:

user_time_str = "2024-09-12 14:00:00"
user_time = datetime.strptime(user_time_str, "%Y-%m-%d %H:%M:%S")
user_time_utc = user_time.replace(tzinfo=pytz.timezone('Asia/Tokyo')).astimezone(pytz.utc)
print(f"User time in UTC: {user_time_utc}")

结论

在 Python 中,时间处理是一个非常基础而又强大的工具,无论是 time 模块还是 datetime 模块,都可以满足日常开发需求。通过灵活运用时间戳、字符串格式化、时区处理等方法,可以有效地处理项目中的时间相关问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1536160.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

服务发现和代理实例的自动更新

1.服务发现的两种方式 StartFindService 方法 这是一个在后台启动的连续 “FindService” 活动,当服务实例的可用性发生变化时,会通过回调通知调用者。 它返回一个FindServiceHandle,可通过调用StopFindService来停止正在进行的监视服务实例…

git快熟

Git版本控制 内容背景集中式与分布式版本控制安装git代码托管服务Git必要配置公钥和私钥注册gitee配置ssh公钥实现远程仓库与本地仓库免密登录git常用命令git|全局设置获取git仓库工作区,暂存区,版本库 概念本地仓库操作远程仓库提交git分支操作idea集成…

数据库事务中的四大问题:脏读、脏写、不可重复读与幻读详解

数据库事务中的四大问题:脏读、脏写、不可重复读与幻读详解 什么是脏读 定义 事务B读取数据时,读取到的是事务A更新之后,但还未提交的数据。 事务A修改了一条数据,但是还没有提交时,事务B查询到了这条未提交的数据…

AI基础 L22 Uncertainty over Time I 时间的不确定性

Time and Uncertainty 1 Time and Uncertainty States and Observations • discrete-time models: we view the world as a series of snapshots or time slices • the time interval ∆ between slices, we assume to be the same for every interval • Xt: denotes the se…

【初阶数据结构】排序

目录 一、排序的概念及其运用 1.1排序的概念 1.2常见的排序算法 二、常见排序算法的实现 2 .1插入排序 2 .1.1基本思想: 2.1.2直接插入排序: 算法复杂度: 最坏情况: 最好的情况: 直接插入排序的特性总结&…

Unity实战案例全解析:PVZ 植物放置分析

前篇:Unity实战案例全解析:PVZ 植物卡片状态分析-CSDN博客 植物应该如何从卡牌状态转为实物? 其实就只需要考虑两个步骤加一个后续处理: 1.点击卡牌后就实例化 需要一个植物状态枚举,因为卡牌分为拿在手上和种植下…

大众点评代发收录

大众点评代发收录 大众点评的代运营到底靠谱不靠谱?擦亮你的眼睛,别再被割韭菜了。#代运营 #永善 #干货分享 #大众点评运营 #美团运营 你的网站被百度搜录了吗?普京说过,给我 20 年,还你一个强大的俄罗斯。那么狂潮老…

SAP HCM HR_ABS_ATT_TIMES_AT_ENTRY 跨夜班不生效问题

导读 跨夜班标准函数不生效:今天客户提出一个问题,计算请假时长不生效的问题(微信小程序调用SAP接口),但是在PA30中能正确计算,所以问题肯定就是在调用标准函数的时候,参数设置问题&#xff0c…

20Kg载重30分钟续航多旋翼无人机技术详解

一、机架与结构设计 1. 材料选择:为了确保无人机能够承载20Kg的负载,同时实现30分钟的续航,其机架材料需选用轻质高强度的材料,如碳纤维或铝合金。这些材料不仅具有良好的承重能力,还能有效减轻无人机的整体重量&…

【linux基础】linux中的开发工具(4)--调试器gdb的使用

目录 前言一,背景二,gdb的使用1. 启动 gdb 调试器:2. 罗列代码信息3. 运行程序4. 有关断点的操作(1) 打断点(2) 查看断点(3) 删除断点(4) 在一次调试中,断点是递增的(5) 关闭断点(6) 开启断点(7) 逐过程调试,相当于 F1…

Redis模拟消息队列实现异步秒杀

目录 一、消息队列含义 二、Redis实现消息队列 1、基于List的结构模拟实现消息队列 2、基于PubSub的消息队列 3、基于Stream的消息队列 4、基于Stream的消息队列- 消费者组 一、消息队列含义 消息队列(Message Queue),字面意思就是存放…

MyBatis中一对多关系的两种处理方法

目录 1.多表联查(通过collection标签的ofType属性) 1)mapper 2)mapper.xml 3)测试代码 4)测试结果 2.分布查询(通过collection标签的select属性) 1)mapper 2)mapper.xml 3&#xff0…

优化算法(三)—模拟退火算法(附MATLAB程序)

模拟退火算法(Simulated Annealing, SA)是一种基于概率的优化算法,旨在寻找全局最优解。该算法模拟金属退火过程中的物质冷却过程,逐渐降低系统的“温度”以达到全局优化的效果。它特别适用于解决复杂的组合优化问题。 一、模拟退…

[产品管理-21]:NPDP新产品开发 - 19 - 产品设计与开发工具 - 详细设计与规格定义

目录 前言: 一、详细设计与规格定义概述 1、产品详细设计 2、规格定义 3、详细设计与规格定义的关系 4、实际应用中的注意事项 二、详细设计与规格定义主要工具 2.1 质量功能展开QFD - 需求跟踪矩阵 1、QFD的基本原理 2、QFD的实施步骤 3、QFD的优势与应…

人工智能开发实战matplotlib库应用基础

内容导读 matplotlib简介绘制直方图绘制撒点图 一、matplotlib简介 matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成高质量的图形。 matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能。 我们只需几行代码…

解锁全球机遇:澳大利亚服务器租用市场的独特魅力

在浩瀚的全球数字版图中,澳大利亚以其独特的地理位置、丰富的资源禀赋、以及日益增长的数字经济活力,成为了众多互联网企业竞相布局的重要市场。特别是当谈及服务器租用这一关键环节时,澳大利亚以其稳定的网络环境、先进的基础设施和开放的市…

[数据集][目标检测]智慧交通铁路异物入侵检测数据集VOC+YOLO格式802张7类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):802 标注数量(xml文件个数):802 标注数量(txt文件个数):802 标注类别…

知识竞赛活动舞台搭建要多少钱

每次举办活动,舞台搭建总是让人头疼的一部分,尤其是费用问题。今天就来揭开活动舞台搭建费用的神秘面纱。 活动舞台搭建的费用主要包括舞台结构、设备、音响、灯光、舞美装饰等各方面的成本。具体来说: 1.舞台结构:包括舞台平台…

5.TensorBoard的使用(二)--add_image()

TensorBoard的使用(二) 1.使用add_image()给添加图片 首先导入Tensorboard包 from torch.utils.tensorboard import SummaryWriter创建一个SummaryWriter类的实例,并将所有的事件文件保存在logs文件夹中 writer SummaryWriter(logs)使用add…

完整版订单超时自动取消功能

前几天对实习还是继续学习技术产生了抉择,问了一个前辈,他抛给我一个问题,怎么做15分钟订单自动取消,我说然后到时间之后,自动执行这个订单关闭业务,比如把锁了的库存给解开等等操作,然后在数据…