python中的时间处理函数

一、datetime模块

1、日期和时间

datetime模块提供了datetime、date和time等类来表示和操作日期和时间。下面是一个创建datetime对象的示例:

from datetime import datetimecurrent_datetime = datetime.now()
print("Current DateTime:", current_datetime)

2、日期和时间格式

datetime的strftime()方法可以将日期和时间格式化为字符串:

from datetime import datetimecurrent_datetime = datetime.now()
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print("Formatted DateTime:", formatted_datetime)

3、日期和时间运算操作

datetime模块提供了对日期和时间执行算术运算的方法。下面是计算两个datetime对象之间差异的示例

from datetime import datetime, timedelta# Create two datetime objects
start_datetime = datetime(2023, 5, 30, 10, 0, 0)
end_datetime = datetime(2023, 5, 31, 15, 30, 0)# Calculate the difference between two datetime objects
time_difference = end_datetime - start_datetimeprint("Time Difference:", time_difference)

4、时区转换

使用pytz库在不同时区之间转换datetime对象。这里有一个例子:

from datetime import datetime
import pytz# Create a datetime object with a specific timezone
dt = datetime(2023, 5, 31, 10, 0, 0, tzinfo=pytz.timezone('America/New_York'))# Convert the datetime object to a different timezone
dt_utc = dt.astimezone(pytz.utc)print("Datetime in UTC:", dt_utc)

5、strftime() strptime() timedelta

5.1函数介绍:

  • strptime()是将传进来的字符串时间(第一个参数)按照指定格式(第二个参数)转换成datetime类型;字符串–>datetime
  • strftime()将传进来的datetime时间(第一个参数)按照指定格式(第二个参数)转换成字符串类型;datetime–>字符串

5.2datetime.timedelta对象

timedalte 是datetime中的一个对象,该对象表示两个时间的差值

构造函数:

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

其中参数都是可选,默认值为0

  • timedelta.total_seconds()方法:返回该时间差 以为单位的值

5.3用法

(1)把字符串转换成datetime对象

from datetime import datetime  #引入datetime模块
time= datetime.strptime('2023-9-8 14:57:19','%Y-%m-%d %H:%M:%S')   #把字符串转换成时间
print(type(time))
#<class 'datetime.datetime'>

(2)把datetime对象转化为字符串

#把日期转换成字符串
import datetime  #引入datetime模块
str = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  #获取当前时间并转化成字符串
print(str)   #输出字符串信息
# 2023-09-08 14:59:52

(3)两个datetime对象的时间差值 – datetime.timedelta 对象

import datetime  #引入datetime模块
import timeif __name__ == '__main__':star_time = datetime.datetime.now()time.sleep(1)end_time = datetime.datetime.now()diff = end_time - star_time   # diff为datetime.timedelta对象days = diff.daysprint('days : %s' % days)seconds = diff.secondsprint('seconds : %s' % seconds)microseconds = diff.microsecondsprint('microseconds : %s' % microseconds)#days : 0
#seconds : 1
#microseconds : 3105

(4)计算当前时间向后10小时的时间

import datetime
d1 = datetime.datetime.now()
print(d1.strftime('%Y-%m-%d %H:%M:%S'))
d2 = d1 + datetime.timedelta(hours=10)
print(d2.strftime('%Y-%m-%d %H:%M:%S'))#2021-07-10 16:57:18
#2021-07-11 02:57:18

(5)datetime将datetime对象转换成时间字符串和时间戳

from datetime import datetime# datetime对象转换成时间字符串
datetime_str = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')
print(datetime_str)# datetime对象转换成时间戳
datetime_stamp = datetime.timestamp(datetime.now())
print(datetime_stamp)#2023-09-08 15:04:46
#1694156686.777958

(6)datetime将时间戳转换成时间字符串

from datetime import datetime
datetime_stamp2 = 1694156686.777958
datetime_str2 = datetime.strftime(datetime.fromtimestamp(datetime_stamp2), '%Y-%m-%d %H:%M:%S')
print(datetime_str2)
#2023-09-08 15:04:46

import datetime
# from datetime import datetime
datetime_stamp2 = 1694156686.777958
datetime_str2 = datetime.datetime.strftime(datetime.datetime.fromtimestamp(datetime_stamp2), '%Y-%m-%d %H:%M:%S')
print(datetime_str2)
#2023-09-08 15:04:46

二、time模块

time模块主要用于处理时间相关的操作,例如获取当前时间、时间的计算和格式化等。它提供了一些函数和常量,包括:

  • time():返回当前的时间戳(自1970年1月1日午夜以来的秒数)。

  • ctime():将一个时间戳转换为可读性更好的字符串表示。

  • gmtime():将一个时间戳转换为UTC时间的struct_time对象。

  • strftime():将时间格式化为指定的字符串格式。

1、测量执行时间

时间模块通常用于度量代码段的执行时间。这在优化代码或比较不同算法的性能时特别有用。

import timestart_time = time.time()
time.sleep(1)
# Code snippet to measure execution time
end_time = time.time()
execution_time = end_time - start_time
print("Execution Time:", execution_time, "seconds")
#Execution Time: 1.0129914283752441 seconds

2、暂停执行

我们可能需要将程序的执行暂停一段特定的时间。time模块为此提供了sleep()函数。这里有一个例子:

import timeprint("Hello")
time.sleep(2)
print("World!")
#Hello
#World!

3、获取当前时间

以各种格式获得当前时间。time()函数的作用是:返回自Unix纪元(1970年1月1日)以来的秒数。

import timecurrent_time = time.time()
print("Current Time (seconds since epoch):", current_time)
#Current Time (seconds since epoch): 1694158550.9443023

可以看到,time模块主要用于表示时间戳(自Unix纪元以来的秒数)和一些与时间相关的基本操作,如睡眠、计时等。它提供了获取当前时间戳的函数time()以及其他一些函数如gmtime()、localtime()和strftime()等。

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

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

相关文章

sentinel熔断报java.lang.reflect.UndeclaredThrowableException

背景&#xff1a;内部要进行应用jdk&springboot升级&#xff0c;因此也需要将Spring Cloud Hystrix 替换成alibaba sentinel。 依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</a…

异步编程 - 12 异步、基于事件驱动的网络编程框架 Netty

文章目录 Netty概述Netty中的一些概念Netty的线程模型Netty Server端Netty Netty 端 TCP半包与粘包问题基于Netty与CompletableFuture实现RPC异步调用 Netty概述 Netty是一个异步、基于事件驱动的网络应用程序框架&#xff0c;其对Java NIO进行了封装&#xff0c;大大简化了TC…

阿里云云主机免费试用三个月

试用链接如下&#xff1a; 阿里云云产品免费试用 云主机 费用试用三个月&#xff0c;每月750小时 实例规格 1核(vCPU) 2 GiB S6 系列机型 适用搭建网站等场景 网络带宽 1M 公网固定网络带宽 云盘40 GiB 真香&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

促科技创新:高德数据优化篇之OceanBase最佳实践

本文作者&#xff1a; 振飞&#xff08;高德地图总裁&#xff09; 炳蔚&#xff08;高德技术服务平台负责人&#xff09; 福辰&#xff08;高德服务端架构师&#xff09; 背景 高德成立于2002年&#xff0c;是中国领先的移动数字地图、导航及实时交通信息服务提供商&#xff0c…

数据库去重(MYSQL和ORACLE)

一、数据库中的去重操作&#xff08;删除数据库中重复记录的SQL语句&#xff09;主要有三种方法 &#xff08;1&#xff09;、rowid方法 &#xff08;2&#xff09;、group by 方法 &#xff08;3&#xff09;、distinct方法 1、用rowid方法 根据Oracle带的rowid属性&#…

React中的类组件和函数组件(详解)

React的核心思想就是组件化&#xff0c;相对于Vue来说&#xff0c;React的组件化更加灵活和多样。主要可以分为两大类&#xff1a;函数组件&#xff0c;类组件&#xff0c;这两大类组件的名称必须是大写字母开头 一、函数组件 函数组件通常是function进行定义的函数&#xff0…

04、javascript 修改对象中原有的属性值、修改对象中原有属性的名字(两种方式)、添加对象中新属性等的操作

1、修改对象中原有的属性值 其一、代码为&#xff1a; // 想将 obj 中的 flag 值&#xff0c;根据不同的值来变化(即&#xff1a;修改对象中原有的属性值)&#xff1b; let obj {"port": "port_0","desc": "desc_0","flag&quo…

java字符串String类的常用方法

java字符串String类的常用方法 字符串的创建&#xff1a; (1)定义字符串直接赋值&#xff0c;在字符串池中开辟空间() String str1“Hello”;//在字符串池中写入字符串"hello" String str2“Hello”;//直接引用字符串池中的"Hello" System.out.printl…

qt作业day2

//widget.cpp#include "widget.h" #include "ui_widget.h"void Widget::usr_login() {if("admin" this->edit_acc->text()){if("123456" this->edit_psd->text()){speech->say("登录成功");emit jump_sig1…

Scientific discovery in the age of artificial intelligence

人工智能时代的科学发现 摘要 人工智能(AI)正越来越多地融入科学发现&#xff0c;以增强和加速研究&#xff0c;帮助科学家产生假设&#xff0c;设计实验&#xff0c;收集和解释大型数据集&#xff0c;并获得仅使用传统科学方法可能无法获得的见解。在这里&#xff0c;我们研究…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书南京财经大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书南京财经大学图书馆

Win11搭建 Elasticsearch 7 集群(一)

一&#xff1a; ES与JDK版本匹配一览表 elasticsearch从7.0开始默认安装了java运行环境&#xff0c;以便在没有安装java运行环境的机器上运行。如果配置了环境变量JAVA_HOME&#xff0c;则elasticsearh启动时会使用JAVA_HOME作为java路径&#xff0c;否则使用elasticsearch根目…

【录用案例】CCF-C类,1/2区SCIEI,3个月14天录用,30天见刊,11天检索

计算机科学类SCI&EI 【期刊简介】IF&#xff1a;5.5-6.0&#xff0c;JCR1/2区&#xff0c;中科院2区 【检索情况】SCI&EI 双检&#xff08;CCF-C类&#xff09; 【征稿领域】边缘计算、算法与机器学习的结合研究 录用案例&#xff1a;3个月14天录用&#xff0c;录用…

Android lint配置及使用

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、将 lint 配置为不显示警告3.1 在 A…

【TSN】(一)中英译文

【Two Stream Net】 一&#xff0c;双语翻译 文章目录 【Two Stream Net】Abstract1 Introduction1.1 Related work 2 Two-stream architecture for video recognition3 Optical flow ConvNets3.1 ConvNet input configurations3.2 Relation of the temporal ConvNet archite…

论文阅读 (100):Simple Black-box Adversarial Attacks (2019ICML)

文章目录 1 概述1.1 要点1.2 代码1.3 引用 2 背景2.1 目标与非目标攻击2.2 最小化损失2.3 白盒威胁模型2.4 黑盒威胁模型 3 简单黑盒攻击3.1 算法3.2 Cartesian基3.3 离散余弦基3.4 一般基3.5 学习率 ϵ \epsilon ϵ3.6 预算 1 概述 1.1 要点 题目&#xff1a;简单黑盒对抗攻…

mybatis-plus 常用API 详解

今天分享常用API: 1、排序&#xff1a; // 组装查询条件 QueryWrapper<User> wrapper new QueryWrapper<>(); // 按 id, age 字段进行升序 wrapper.orderBy(true, true, "id", "age");// 实际执行 SQL : SELECT id,name,age,gender FROM us…

Docker 概念构成

0 概述 构成原理 Docker 客户端(Client)Docker 客户端通过命令行或者其他工具使用 Docker SDK与 Docker 的守护进程通信。Docker 主机(Host)一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。Docker Hub 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多…

E5071C是德科技网络分析仪

描述 E5071C网络分析仪提供同类产品中最高的RF性能和最快的速度&#xff0c;具有宽频率范围和多功能。E5071C是制造和R&D工程师评估频率范围高达20 GHz的RF元件和电路的理想解决方案。特点: 宽动态范围:测试端口的动态范围> 123 dB(典型值)快速测量速度:41毫秒全2端口…

YOLOV8从零搭建一套目标检测系统(修改model结构必看)附一份工业缺陷检测数据集

目录 1.YOLOV8介绍 2.YOLOV8安装 2.1环境配置 3.数据集准备 1.YOLOV8介绍 Yolov8结构图&#xff1a; YoloV8相对于YoloV5的改进点&#xff1a; Replace the C3 module with the C2f module. Replace the first 6x6 Conv with 3x3 Conv in the Backbone. Delete two Convs …