Python之time时间库

time时间库

  • 概述
  • 获取当前时间
    • time库
    • datetime库
    • 区别
  • 时间元组处理
    • 获取时间元组的各个部分
    • 时间戳和时间元组的转换
  • 格式化时间
    • 格式化时间
    • 解析时间
    • 格式符号说明
  • 暂停程序
  • 计时操作
    • 简单计时
    • 高精度计时
    • 计时器类的实现
  • UTC时间操作
    • time库
    • datetime库

概述

time是Python标准库中的一个模块,用于处理时间相关的操作。它提供了各种函数来获取当前时间、格式化时间、进行时间的转换和计算等。

首先,需要导入 time 模块:

import time

获取当前时间

time库

  • 时间戳:返回自1970年1月1日以来的秒数。

    timestamp = time.time()
    print("当前时间戳:", timestamp)
    
  • 本地时间:返回一个表示本地时间的结构化时间。

    local_time = time.localtime()
    print("本地时间:", local_time)
    
  • 格式化时间:将时间格式化为可读字符串。

    formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
    print("格式化时间:", formatted_time)
    

使用time库获取当前时间

import time# 获取当前时间戳
current_timestamp = time.time()
print("当前时间戳:", current_timestamp)# 将时间戳转换为本地时间
local_time = time.localtime(current_timestamp)# 格式化输出当前时间
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("当前本地时间:", formatted_time)

输出结果:

当前时间戳: 1729261034.7482784
当前本地时间: 2024-10-18 22:17:14

datetime库

datetime是一个与time类似的库。它库提供了更强大的时间和日期处理功能。

以下是使用datetime库获取当前时间的示例:

from datetime import datetime# 获取当前时间
current_datetime = datetime.now()
print("当前日期和时间:", current_datetime)# 格式化输出当前时间
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print("格式化后的当前时间:", formatted_datetime)# 获取单独的日期和时间
current_date = current_datetime.date()
current_time = current_datetime.time()
print("当前日期:", current_date)
print("当前时间:", current_time)
当前日期和时间: 2024-10-18 22:17:55.574988
格式化后的当前时间: 2024-10-18 22:17:55
当前日期: 2024-10-18
当前时间: 22:17:55.574988

区别

time库:适合简单的时间获取和格式化操作。datetime库:提供了更多功能,如日期和时间的加减、比较等,适合更复杂的时间处理需求。

时间元组处理

时间元组包含年、月、日、小时、分钟、秒等信息,可以通过索引访问这些信息。

获取时间元组的各个部分

可以直接从时间元组中提取年、月、日、小时、分钟、秒等。

import time# 获取当前本地时间的时间元组
local_time_tuple = time.localtime()year = local_time_tuple.tm_year
month = local_time_tuple.tm_mon
day = local_time_tuple.tm_mday
hour = local_time_tuple.tm_hour
minute = local_time_tuple.tm_min
second = local_time_tuple.tm_secprint(f"当前时间: {year}-{month}-{day} {hour}:{minute}:{second}")

时间戳和时间元组的转换

使用time.mktime(t):将时间元组转换为时间戳(本地时间)。

import time# 创建一个时间元组
time_tuple = (2024, 10, 1, 12, 0, 0, 0, 0, -1)  # 2024年10月1日 12:00:00# 转换为时间戳
timestamp = time.mktime(time_tuple)
print("时间戳:", timestamp)

使用time.asctime([t]):将时间元组转换为可读的字符串格式。

import time# 获取当前时间的时间元组
current_time_tuple = time.localtime()# 将当前时间元组转换为可读字符串
current_time_str = time.asctime(current_time_tuple)
print("当前时间:", current_time_str)

格式化时间

格式化时间

time.strftime(format, t)函数用于将时间元组t格式化为字符串。format是一个格式字符串,指定了输出的格式。

import time# 获取当前时间的时间元组
current_time = time.localtime()# 格式化时间
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", current_time)
print("当前时间:", formatted_time)

解析时间

time.strptime(string, format)函数用于将字符串解析为时间元组。

import time# 时间字符串
time_string = "2023-10-01 12:30:45"# 解析时间字符串
time_tuple = time.strptime(time_string, "%Y-%m-%d %H:%M:%S")# 输出时间元组
print("时间元组:", time_tuple)

输出结果:

时间元组: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=1, tm_hour=12, tm_min=30, tm_sec=45, tm_wday=6, tm_yday=274, tm_isdst=-1)

格式符号说明

格式化字符串用途举例
%Y年(4位数字)2024
%y年(后2位数字)24
%m月(数字)12
%B月(英文)December
%b月(缩写)Dec
%A星期(英文)Monday
%a星期(缩写)Mon
%d日期(数字)11
%D完整日期(月/日/年)24/11/18
%p上午/下午PM
%H小时(24 小时制)18
%h小时(12 小时制)6
%M分钟55
%S33

使用time库获取当前时间并格式化输出

import time# 获取当前时间戳
timestamp = time.time()
print("当前时间戳:", timestamp)# 获取本地时间并格式化
local_time = time.localtime(timestamp)# 使用不同的格式化字符串
formatted_full_year = time.strftime("%Y", local_time)  # 年(全写数字)
formatted_two_digit_year = time.strftime("%y", local_time)  # 年(后两位数字)
formatted_month_number = time.strftime("%m", local_time)  # 月(数字)
formatted_month_full = time.strftime("%B", local_time)  # 月(英文)
formatted_month_abbr = time.strftime("%b", local_time)  # 月(缩写)
formatted_weekday_full = time.strftime("%A", local_time)  # 星期(英文)
formatted_weekday_abbr = time.strftime("%a", local_time)  # 星期(缩写)
formatted_day = time.strftime("%d", local_time)  # 日期(数字)
formatted_full_date = time.strftime("%D", local_time)  # 完整日期(月/日/年)
formatted_am_pm = time.strftime("%p", local_time)  # 上午/下午
formatted_hour_24 = time.strftime("%H", local_time)  # 小时(24 小时制)
formatted_hour_12 = time.strftime("%I", local_time)  # 小时(12 小时制)
formatted_minute = time.strftime("%M", local_time)  # 分钟
formatted_second = time.strftime("%S", local_time)  # 秒# 打印格式化后的时间
print("格式化时间示例:")
print("年(全写数字):", formatted_full_year)
print("年(后两位数字):", formatted_two_digit_year)
print("月(数字):", formatted_month_number)
print("月(英文):", formatted_month_full)
print("月(缩写):", formatted_month_abbr)
print("星期(英文):", formatted_weekday_full)
print("星期(缩写):", formatted_weekday_abbr)
print("日期(数字):", formatted_day)
print("完整日期(月/日/年):", formatted_full_date)
print("上午/下午:", formatted_am_pm)
print("小时(24 小时制):", formatted_hour_24)
print("小时(12 小时制):", formatted_hour_12)
print("分钟:", formatted_minute)
print("秒:", formatted_second)

输出类似以下内容

当前时间戳: 1729260848.0795202
格式化时间示例:
年(全写数字): 2024
年(后两位数字): 24
月(数字): 10
月(英文): October
月(缩写): Oct
星期(英文): Friday
星期(缩写): Fri
日期(数字): 18
完整日期(月//年): 10/18/24
上午/下午: PM
小时(24 小时制): 22
小时(12 小时制): 10
分钟: 14: 08

暂停程序

在Python中,可以使用time库的sleep()函数来暂停程序的执行。适用于需要延迟执行的场景,例如倒计时、动画效果等。

sleep(seconds):seconds参数可以是浮点数,表示暂停执行指定的秒数。

import timeprint("程序开始")
# 暂停 3 秒
time.sleep(3)
print("程序继续,暂停了 3 秒")

一个简单的倒计时器示例,使用time.sleep()来实现每秒更新一次倒计时

import timedef countdown(seconds):while seconds > 0:print(f"倒计时: {seconds} 秒")time.sleep(1)  # 暂停 1 秒seconds -= 1print("时间到!")# 启动倒计时 5 秒
countdown(5)

输出结果如下:

倒计时: 5 秒
倒计时: 4 秒
倒计时: 3 秒
倒计时: 2 秒
倒计时: 1 秒
时间到!

计时操作

在Python 中,time库可以用于计时和测量代码执行的时间。常用的方法包括time.time()time.perf_counter()

简单计时

time.time()返回当前的时间戳(自1970年1月1日以来的秒数)。可以使用它来测量代码块的执行时间。

import time# 记录开始时间
start_time = time.time()# 执行一些操作
time.sleep(2)  # 模拟耗时操作(例如,等待2秒)# 记录结束时间
end_time = time.time()# 计算执行时间
execution_time = end_time - start_time
print(f"代码执行时间: {execution_time:.2f} 秒")

高精度计时

time.perf_counter()提供了更高精度的计时器,适合用于性能测量。

import time# 记录开始时间
start_time = time.perf_counter()# 执行一些操作
time.sleep(2)  # 模拟耗时操作(例如,等待2秒)# 记录结束时间
end_time = time.perf_counter()# 计算执行时间
execution_time = end_time - start_time
print(f"代码执行时间: {execution_time:.4f} 秒")

计时器类的实现

创建一个简单的计时器类,方便重复使用。

import timeclass Timer:def __init__(self):self.start_time = Nonedef start(self):self.start_time = time.perf_counter()def stop(self):if self.start_time is None:raise ValueError("Timer has not been started.")end_time = time.perf_counter()elapsed_time = end_time - self.start_timeself.start_time = None  # 重置计时器 return elapsed_timereturn elapsed_time# 使用计时器
timer = Timer()timer.start()
time.sleep(1.5)  # 模拟耗时操作
elapsed_time = timer.stop()print(f"计时器记录的时间: {elapsed_time:.4f} 秒")

UTC时间操作

使用time库处理UTC时间相对简单,适合进行基本的时间操作。如果有更复杂的时间处理需求,建议使用datetimepytz库。

time库

1.使用time.gmtime()获取当前的UTC时间,并将其转换为时间元组。

import time# 获取当前 UTC 时间的时间元组
utc_time_tuple = time.gmtime()print(f"当前 UTC 时间的时间元组: {utc_time_tuple}")

输出:

当前 UTC 时间的时间元组: time.struct_time(tm_year=2024, tm_mon=10, tm_mday=18, tm_hour=14, tm_min=51, tm_sec=24, tm_wday=4, tm_yday=292, tm_isdst=0)

2.可以使用 time.strftime()函数将时间元组格式化为字符串。

import time# 获取当前 UTC 时间的时间元组
utc_time_tuple = time.gmtime()# 格式化输出
formatted_utc = time.strftime("%Y-%m-%d %H:%M:%S", utc_time_tuple)
# 当前 UTC 时间: 2024-10-18 14:54:07
print(f"当前 UTC 时间: {formatted_utc}")

3.如果想获取当前UTC时间的时间戳,可以使用time.time()函数。

import time# 获取当前 UTC 时间的时间戳
utc_timestamp = time.time()print(f"当前 UTC 时间戳: {utc_timestamp}")

4.如果有一个时间戳,可以使用time.gmtime()将其转换为 UTC 时间的时间元组。

import time# 获取当前 UTC 时间的时间戳
utc_timestamp = time.time()# 将时间戳转换为 UTC 时间的时间元组
utc_time_tuple = time.gmtime(utc_timestamp)# 格式化输出
formatted_utc = time.strftime("%Y-%m-%d %H:%M:%S", utc_time_tuple)
print(f"当前 UTC 时间: {formatted_utc}")

datetime库

1.使用datetime.datetime.utcnow()方法可以获取当前的UTC时间。

from datetime import datetime# 获取当前 UTC 时间
utc_now = datetime.utcnow()
print(f"当前 UTC 时间: {utc_now}")

2.使用strftime方法将UTC时间格式化并输出字符串,以便更易读。

from datetime import datetime# 获取当前 UTC 时间
utc_now = datetime.utcnow()# 格式化输出
formatted_utc = utc_now.strftime("%Y-%m-%d %H:%M:%S")
print(f"当前 UTC 时间: {formatted_utc}")

3.如果需要处理时区,可以使用pytz库(需要安装)来获取带时区的UTC时间。

from datetime import datetime
import pytz# 获取 UTC 时区对象
utc_timezone = pytz.utc# 获取当前 UTC 时间并设置时区
utc_now = datetime.now(utc_timezone)
print(f"当前带时区的 UTC 时间: {utc_now}")

4.如果需要将本地时间转换为UTC时间,可以使用astimezone()方法。

from datetime import datetime
import pytz# 获取当前本地时间
local_now = datetime.now()# 将本地时间转换为 UTC 时间
local_timezone = pytz.timezone("Asia/Shanghai")  # 例如,使用上海时区
local_now = local_timezone.localize(local_now)  # 本地化
utc_now = local_now.astimezone(pytz.utc)  # 转换为 UTC 时间print(f"当前本地时间: {local_now}")
print(f"转换后的 UTC 时间: {utc_now}")

输出结果:

当前本地时间: 2024-10-18 22:45:30.948967+08:00
转换后的 UTC 时间: 2024-10-18 14:45:30.948967+00:00

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS4+NEXT星河版入门与项目实战------Button组件

文章目录 1、控件图解2、案例实现1、代码实现2、代码解释3、运行效果4、总结1、控件图解 这里我们用一张完整的图来汇整 Button 的用法格式、属性和事件,如下所示: 按钮默认类型就是胶囊类型。 2、案例实现 这里我们实现一个根据放大和缩小按钮来改变图片大小的功能。 功…

WPF窗体基本知识-笔记-命名空间

窗体程序关闭方式 命名空间:可以理解命名空间的作用为引用下面的控件对象 给控件命名:一般都用x:Name,也可以用Name但是有的控件不支持 布局控件(容器)的类型 布局控件继承于Panel的控件,其中下面的border不是布局控件,panel是抽象类 在重叠的情况下,Zindex值越大的就在上面 Z…

【Qt】QComboBox设置默认显示为空

需求 使用QComboBox,遇到一个小需求是,想要设置未点击出下拉列表时,内容显示为空。并且不想在下拉列表中添加一个空条目。 实现 使用setPlaceholderText()接口。我们先来看下帮助文档: 这里说的是,placeholderText是…

音频信号采集前端电路分析

音频信号采集前端电路 一、实验要求 要求设计一个声音采集系统 信号幅度:0.1mVpp到1Vpp 信号频率:100Hz到16KHz 搭建一个带通滤波器,滤除高频和低频部分 ADC采用套件中的AD7920,转换率设定为96Ksps ;96*161536 …

[开源]1.2K star!中后台方向的低代码可视化平台,超赞!

大家好,我是JavaCodexPro! “时间就是金钱,效率就是生命”,快速搭建高质量中后台的低代码可视化搭建平台尤为重要! 今天JavaCodexPro给大家分享一款超赞的低代码可视化搭建平台 - Marsview ,旨在简化开发…

Leetcode 完全二叉树的节点个数

不讲武德的解法 java 实现 class Solution {public int countNodes(TreeNode root) {if(root null) return 0;return countNodes(root.left) countNodes(root.right) 1;} }根据完全二叉树和满二叉树的性质做 class Solution {public int countNodes(TreeNode root) {if (r…

基于CVE安全公告号,全面修复麒麟ARM系统OpenSSH漏洞

前言:负责的其中一个从0开始搭建的某生产项目上线前需要做青藤安全扫描,过了后才允许上线,该项目从操作系统、中间件、数据库、容器等全国产信创化,公司公告为CVE安全公告号,而修复漏洞的责任归我,需要根据…

【每日 C/C++ 问题】

一、什么是 C 中的初始化列表?它的作用是什么? 作用:c提供了初始化列表语法,用来初始化属性 语法:构造函数():属性1(值1),属性2(值…

【前端知识】Javascript前端框架Vue入门

前端框架VUE入门 概述基础语法介绍组件特性组件注册Props 属性声明事件组件 v-model(双向绑定)插槽Slots内容与出口 组件生命周期样式文件使用1. 直接在<style>标签中写CSS2. 引入外部CSS文件3. 使用CSS预处理器4. 在main.js中全局引入CSS文件5. 使用CSS Modules6. 使用P…

【代码pycharm】动手学深度学习v2-04 数据操作 + 数据预处理

数据操作 数据预处理 1.数据操作运行结果 2.数据预处理实现运行结果 第四课链接 1.数据操作 import torch # 张量的创建 x1 torch.arange(12) print(1.有12个元素的张量&#xff1a;\n,x1) print(2.张量的形状&#xff1a;\n,x1.shape) print(3.张量中元素的总数&#xff1…

《Python浪漫的烟花表白特效》

一、背景介绍 烟花象征着浪漫与激情&#xff0c;将它与表白结合在一起&#xff0c;会创造出别具一格的惊喜效果。使用Python的turtle模块&#xff0c;我们可以轻松绘制出动态的烟花特效&#xff0c;再配合文字表白&#xff0c;打造一段专属的浪漫体验。 接下来&#xff0c;让…

CSS中Flex布局应用实践总结

① 两端对齐 比如 要求ul下的li每行四个&#xff0c;中间间隔但是需要两段对齐&#xff0c;如下图所示&#xff1a; 这是除了基本的flex布局外&#xff0c;还需要用到:nth-of-type伪类来控制每行第一个与第四个的padding。 .hl_list{width: 100%;display: flex;align-items…

STM32与CS创世SD NAND(贴片SD卡)结合完成FATFS文件系统移植与测试是一个涉及硬件与软件综合应用的复杂过程

一、前言 在STM32项目开发中&#xff0c;经常会用到存储芯片存储数据。 比如&#xff1a;关机时保存机器运行过程中的状态数据&#xff0c;上电再从存储芯片里读取数据恢复&#xff1b;在存储芯片里也会存放很多资源文件。比如&#xff0c;开机音乐&#xff0c;界面上的菜单图…

Matlab实现海鸥优化算法优化随机森林算法模型 (SOA-RF)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 海鸥优化算法&#xff08;Seagull Optimization Algorithm, SOA&#xff09;是一种基于海鸥群体行为的新型元启发式优化算法。SOA通过模拟海鸥在寻找食物时的飞行模式和集体行动来探索解空间&#xff0c;寻找最优…

C# Postman或者PostApi调试前端webapi接口发送带有request/body/head信息

知识&#xff1a; 前端接口&#xff0c;表单形式提交。 req.ContentType "application/x-www-form-urlencoded"; x-www-form-urlencoded 是一种常见的 MIME 类型&#xff0c;用于将键值对编码为 HTTP 请求体中的 URL 编码格式。在 Web API 中&#xff0c;x-www-for…

npm上传自己封装的插件(vue+vite)

一、npm账号及发包删包等命令 若没有账号&#xff0c;可在npm官网&#xff1a;https://www.npmjs.com/login 进行注册。 在当前项目根目录下打开终端命令窗口&#xff0c;常见命令如下&#xff1a; 1、登录命令&#xff1a;npm login&#xff08;不用每次都重新登录&#xff0…

案例精选 | 某知名教育集团基于安全运营平台的全域威胁溯源实践

某知名教育集团成立于1999年&#xff0c;总部位于北京海淀中关村。集团专注于K-12基础教育&#xff0c;构建了从幼儿园到高中的全面教育体系&#xff0c;涵盖学校管理、教学科研、师资培训、信息化服务等多个方面。集团在全国范围内设有15所小学、12所初中、9所高中、6个国际部…

鸿蒙多线程开发——线程间数据通信对象01

1、线程间通信 线程间通信指的是并发多线程间存在的数据交换行为。由于ArkTS语言兼容TS/JS&#xff0c;其运行时的实现与其它所有的JS引擎一样&#xff0c;都是基于Actor内存隔离的并发模型提供并发能力。 对于不同的数据对象&#xff0c;在ArkTS线程间通信的行为是有差异的&…

徒手从零搭建一套ELK日志平台

徒手从零搭建一套ELK日志平台 日志分析的概述日志分析的作用主要收集工具集中式日志系统主要特点采集日志分类ELK概述初级版ELK终极版ELK高级版ELKELK收集日志的两种形式 搭建ELK平台Logstash工作原理Logstash核心概念环境准备安装部署docker添加镜像加速器安装部署Elasticsear…

React基础知识一

写的东西太多了&#xff0c;照成csdn文档编辑器都开始卡顿了&#xff0c;所以分篇写。 1.安装React 需要安装下面三个包。 react:react核心包 react-dom:渲染需要用到的核心包 babel:将jsx语法转换成React代码的工具。&#xff08;没使用jsx可以不装&#xff09;1.1 在html中…