python-datetime模块时间戳常用方法汇总

文章目录

  • datetime模块常用方法
    • 1、导入模块
    • 2、获取当前日期和时间
    • 3、获取当前日期
    • 4、创建特定日期或时间
    • 5、日期和时间的运算
    • 6、使用timedelta运算日期时间
      • 创建 `timedelta` 对象
      • `timedelta` 的加减运算
      • `timedelta` 的属性
      • `timedelta` 的比较
      • 示例代码
      • 格式化日期和时间
      • 获取日期和时间的各个部分
      • 时区处理
      • 日期和时间的比较
      • 常用的日期和时间格式化符号
      • 示例代码
    • 7、datatime需要输出今天的日期,时分秒是0
      • 输出结果
      • 解释
  • Python处理时间戳和时间转换
    • 1、导入模块
    • 2、获取当前时间戳
    • 3、时间戳转换为日期和时间
      • 使用 `time` 模块
      • 使用 `datetime` 模块
    • 4、日期和时间转换为时间戳
      • 使用 `time` 模块
      • 使用 `datetime` 模块
    • 5、处理带时区的时间戳
    • 6、示例代码

datetime模块常用方法

datetime 模块是 Python 标准库中的一个模块,提供了处理日期和时间的类和方法。以下是一些常用的 datetime 操作和用法:

1、导入模块

import datetime

2、获取当前日期和时间

now = datetime.datetime.now()
print("当前日期和时间:", now)

3、获取当前日期

today = datetime.date.today()
print("当前日期:", today)

4、创建特定日期或时间

# 创建一个特定的日期
specific_date = datetime.date(2023, 6, 4)
print("特定日期:", specific_date)# 创建一个特定的时间
specific_time = datetime.time(14, 30, 15)
print("特定时间:", specific_time)# 创建一个特定的日期和时间
specific_datetime = datetime.datetime(2023, 6, 4, 14, 30, 15)
print("特定日期和时间:", specific_datetime)

5、日期和时间的运算

# 日期加减
tomorrow = today + datetime.timedelta(days=1)
print("明天:", tomorrow)yesterday = today - datetime.timedelta(days=1)
print("昨天:", yesterday)# 时间差
time_diff = datetime.datetime(2024, 6, 4) - datetime.datetime(2023, 6, 4)
print("时间差:", time_diff)

6、使用timedelta运算日期时间

datetime.timedelta 是 Python datetime 模块中的一个类,用于表示两个日期或时间之间的差值。它可以用于日期和时间的加减运算。以下是一些常见的 timedelta 用法和示例:

import datetime
from datetime import timedelta

创建 timedelta 对象

timedelta 可以通过指定天、秒、微秒、毫秒、分钟、小时和周来创建:

# 创建一个表示10天的 timedelta 对象
delta_days = datetime.timedelta(days=10)
print("10天的 timedelta:", delta_days)# 创建一个表示2小时30分钟的 timedelta 对象
delta_hours_minutes = datetime.timedelta(hours=2, minutes=30)
print("2小时30分钟的 timedelta:", delta_hours_minutes)# 创建一个表示1周的 timedelta 对象
delta_weeks = datetime.timedelta(weeks=1)
print("1周的 timedelta:", delta_weeks)

timedelta 的加减运算

# 获取当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)# 日期加减 timedelta
future_date = now + delta_days
print("10天后的日期和时间:", future_date)past_date = now - delta_days
print("10天前的日期和时间:", past_date)

timedelta 的属性

timedelta 对象有一些属性可以访问其内部的天、秒和微秒:

delta = datetime.timedelta(days=5, hours=3, minutes=30, seconds=15)print("天数:", delta.days)
print("总秒数:", delta.total_seconds())
print("秒数(不包括天):", delta.seconds)
print("微秒数:", delta.microseconds)

timedelta 的比较

timedelta 对象可以进行比较运算:

delta1 = datetime.timedelta(days=5)
delta2 = datetime.timedelta(days=10)print("delta1 < delta2:", delta1 < delta2)
print("delta1 == delta2:", delta1 == delta2)
print("delta1 > delta2:", delta1 > delta2)

示例代码

import datetime
from datetime import timedelta# 创建 timedelta 对象
delta_days = datetime.timedelta(days=10)
delta_hours_minutes = datetime.timedelta(hours=2, minutes=30)
delta_weeks = datetime.timedelta(weeks=1)# 当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)# 日期加减 timedelta
future_date = now + delta_days
print("10天后的日期和时间:", future_date)past_date = now - delta_days
print("10天前的日期和时间:", past_date)# timedelta 的属性
delta = datetime.timedelta(days=5, hours=3, minutes=30, seconds=15)
print("天数:", delta.days)
print("总秒数:", delta.total_seconds())
print("秒数(不包括天):", delta.seconds)
print("微秒数:", delta.microseconds)# timedelta 的比较
delta1 = datetime.timedelta(days=5)
delta2 = datetime.timedelta(days=10)
print("delta1 < delta2:", delta1 < delta2)
print("delta1 == delta2:", delta1 == delta2)
print("delta1 > delta2:", delta1 > delta2)

格式化日期和时间

# 日期和时间格式化为字符串
formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化日期和时间:", formatted_datetime)# 字符串解析为日期和时间
parsed_datetime = datetime.datetime.strptime("2023-06-04 14:30:15", "%Y-%m-%d %H:%M:%S")
print("解析后的日期和时间:", parsed_datetime)

获取日期和时间的各个部分

print("年:", now.year)
print("月:", now.month)
print("日:", now.day)
print("小时:", now.hour)
print("分钟:", now.minute)
print("秒:", now.second)
print("微秒:", now.microsecond)

时区处理

import pytz# 获取当前时间(带时区)
now_utc = datetime.datetime.now(pytz.utc)
print("当前UTC时间:", now_utc)# 将当前时间转换为其他时区
now_est = now_utc.astimezone(pytz.timezone('US/Eastern'))
print("当前美国东部时间:", now_est)# 创建带时区的日期和时间
aware_datetime = datetime.datetime(2023, 6, 4, 14, 30, 15, tzinfo=pytz.timezone('US/Eastern'))
print("带时区的日期和时间:", aware_datetime)

日期和时间的比较

date1 = datetime.date(2023, 6, 4)
date2 = datetime.date(2024, 6, 4)print("date1 是否早于 date2:", date1 < date2)
print("date1 是否等于 date2:", date1 == date2)
print("date1 是否晚于 date2:", date1 > date2)

常用的日期和时间格式化符号

  • %Y:四位数的年份,如 2023
  • %m:两位数的月份(01-12)
  • %d:两位数的日期(01-31)
  • %H:两位数的小时(00-23)
  • %M:两位数的分钟(00-59)
  • %S:两位数的秒(00-59)
  • %f:微秒(000000-999999)
  • %z:时区偏移
  • %Z:时区名称
  • %a:简写的星期几名称
  • %A:完整的星期几名称
  • %b:简写的月份名称
  • %B:完整的月份名称

示例代码

# 当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)# 格式化日期和时间
formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化日期和时间:", formatted_datetime)# 解析日期和时间字符串
parsed_datetime = datetime.datetime.strptime("2023-06-04 14:30:15", "%Y-%m-%d %H:%M:%S")
print("解析后的日期和时间:", parsed_datetime)# 日期加减
tomorrow = now + datetime.timedelta(days=1)
print("明天:", tomorrow)# 时区处理
import pytz
now_utc = datetime.datetime.now(pytz.utc)
print("当前UTC时间:", now_utc)
now_est = now_utc.astimezone(pytz.timezone('US/Eastern'))
print("当前美国东部时间:", now_est)

7、datatime需要输出今天的日期,时分秒是0

要创建一个包含今天的日期但时分秒都为 0 的 datetime 对象,可以使用 datetime 模块中的 datetime.combine 方法,结合 date 对象和 time 对象。以下是如何实现这一点的示例代码:

from datetime import datetime, time# 获取今天的日期
today_date = datetime.today().date()# 创建一个包含今天日期但时分秒为0的datetime对象
today_midnight = datetime.combine(today_date, time.min)print("今天的日期,时分秒为0:", today_midnight)

输出结果

今天的日期,时分秒为0: 2024-05-28 00:00:00

解释

  1. datetime.today().date() 获取今天的日期,不包含时间部分。
  2. time.min 返回一个时间对象,表示 00:00:00。
  3. datetime.combine(today_date, time.min) 将今天的日期与 00:00:00 组合成一个新的 datetime 对象。

这样你就得到了一个 datetime 对象,表示今天的日期且时分秒都为 0。

Python处理时间戳和时间转换

在 Python 中,处理时间戳(即自 Unix 纪元(1970 年 1 月 1 日)以来的秒数)通常使用 timedatetime 模块。以下是一些常用的时间戳操作和时间转换方法:

1、导入模块

import time
import datetime

2、获取当前时间戳

current_timestamp = time.time()
print("当前时间戳:", current_timestamp)

3、时间戳转换为日期和时间

使用 time 模块

# 将时间戳转换为本地时间的 struct_time 对象
local_time = time.localtime(current_timestamp)
print("本地时间:", local_time)# 将时间戳转换为 UTC 时间的 struct_time 对象
utc_time = time.gmtime(current_timestamp)
print("UTC 时间:", utc_time)# 将 struct_time 对象格式化为字符串
formatted_local_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("格式化的本地时间:", formatted_local_time)

使用 datetime 模块

# 将时间戳转换为 datetime 对象
datetime_obj = datetime.datetime.fromtimestamp(current_timestamp)print("datetime 对象:", datetime_obj)# 将时间戳转换为 UTC 的 datetime 对象
utc_datetime_obj = datetime.datetime.utcfromtimestamp(current_timestamp)
print("UTC datetime 对象:", utc_datetime_obj)
# 或
utc_datetime_obj = datetime.datetime.fromtimestamp(current_timestamp, datetime.timezone.utc)  # 默认是本地ip时区时间
print("UTC datetime 对象:", utc_datetime_obj)# 格式化 datetime 对象为字符串
formatted_datetime = datetime_obj.strftime("%Y-%m-%d %H:%M:%S")
print("格式化的 datetime 对象:", formatted_datetime)

4、日期和时间转换为时间戳

使用 time 模块

# 创建 struct_time 对象
struct_time = time.strptime("2023-06-04 14:30:15", "%Y-%m-%d %H:%M:%S")# 将 struct_time 对象转换为时间戳
timestamp = time.mktime(struct_time)
print("时间戳:", timestamp)

使用 datetime 模块

# 创建 datetime 对象
datetime_obj = datetime.datetime(2023, 6, 4, 14, 30, 15)# 将 datetime 对象转换为时间戳
timestamp = datetime_obj.timestamp()
print("时间戳:", timestamp)

5、处理带时区的时间戳

import pytz# 获取当前时间戳
current_timestamp = time.time()# 将时间戳转换为带时区的 datetime 对象
datetime_obj = datetime.datetime.fromtimestamp(current_timestamp, pytz.timezone('US/Eastern'))
print("带时区的 datetime 对象:", datetime_obj)# 将带时区的 datetime 对象转换为时间戳
timestamp_with_tz = datetime_obj.timestamp()
print("带时区的时间戳:", timestamp_with_tz)

6、示例代码

import time
import datetime
import pytz# 获取当前时间戳
current_timestamp = time.time()
print("当前时间戳:", current_timestamp)# 时间戳转换为日期和时间
local_time = time.localtime(current_timestamp)
formatted_local_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("本地时间:", formatted_local_time)# 使用 datetime 模块
datetime_obj = datetime.datetime.fromtimestamp(current_timestamp)
formatted_datetime = datetime_obj.strftime("%Y-%m-%d %H:%M:%S")
print("格式化的 datetime 对象:", formatted_datetime)# 日期和时间转换为时间戳
datetime_obj = datetime.datetime(2023, 6, 4, 14, 30, 15)
timestamp = datetime_obj.timestamp()
print("时间戳:", timestamp)# 处理带时区的时间戳
datetime_obj_with_tz = datetime.datetime.fromtimestamp(current_timestamp, pytz.timezone('US/Eastern'))
print("带时区的 datetime 对象:", datetime_obj_with_tz)
timestamp_with_tz = datetime_obj_with_tz.timestamp()
print("带时区的时间戳:", timestamp_with_tz)

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

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

相关文章

matrix-breakout-2-morpheus vulnhub靶场

端口扫描 80 81 需要用户名密码登录 目录扫描 robots.txt 妹用 找不到利用点&#xff0c;换个扫描器再扫 发现新的文件 graffiti.txt graffiti.php 输入的数据Post后会回显到页面上 抓包看看&#xff0c;居然直接传文件路径 发现我们post的数据被写入了graffiti.…

yolov5-ros模型结合zed2相机部署在 Ubuntu系统

前言 本篇文章主要讲解yolov5-ros模型结合zed2相机进行实时检测&#xff0c;经改进实现了红绿灯检测&#xff0c;并输出检测类别与置信度&#xff01; 目录 一、环境配置二、zed2驱动安装三、yolov5-ros功能包配置四、运行官方权重文件四、运行自己权重文件 一、环境配置 1、…

微信小程序实现图片转base64

在微信小程序中&#xff0c;图片转base63可以引入第三方插件&#xff1b; 也可以通过下边的方法转base64。 转换方法&#xff1a; imgToBase64(filePath) {return new Promise((resolve, reject) > {let baseFormat data:image/png;base64,let base64 wx.getFileSystem…

记录工作中常用的 JS 数组相关操作

工作中难免会遇到各种各样的数据结构&#xff0c;较为全面的了解数组操作&#xff0c;对于复杂数据结构的处理会非常有用且节省时间 所以想在这里总结一下工作中常用的数组操作&#xff0c;都是一些非常基础的知识&#xff0c;大家看个乐就好~ 目录 工作中常用的数组方法 常…

android睡眠分期图

一、效果图 做医疗类项目&#xff0c;经常会遇到做各种图表&#xff0c;本文做的睡眠分期图。 二、代码 引入用到的库 api joda-time:joda-time:2.10.1 调用代码 /*** 睡眠* 分期*/private SleepChartAdapter mAdapter;private SleepChartAttrs mAttrs;private List<SleepI…

不会制作企业版电子书?学会这几个步骤就好啦!

公司安排你制作一本专业的电子书&#xff0c;不知道如何下手&#xff1f;别担心&#xff0c;今天LookLook同学就来给大家分享一下如何轻松制作企业版电子书。参考这几个步骤&#xff0c;相信你一定能轻松搞定&#xff01; 第一步&#xff1a;明确电子书的目标和受众 在开始制作…

zeppelin 未授权任意命令执行漏洞复现

一、命令执行复现 访问http://ip:8080&#xff0c;打开zeppelin页面&#xff0c;&#xff08;zeppelin默认监听端口在8080&#xff09; 点击Notebook->create new note创建新笔记 在创建笔记的时候选择Default Interpreter为sh&#xff0c;即可执行sh命令 如下图&#x…

Dell服务器使用ipmi控制风扇转速

#关闭自动调速 ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x01 0x00 ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x23#80%转速 ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x50…

最新去水印小程序源码分享/无需后台/对接接口/支持全网去水印功能

最新去水印小程序源码分享&#xff1a;无需后台、对接接口&#xff0c;支持全网去水印功能&#xff0c;经过测试发现&#xff0c;该去水印小程序的解析接口需要付费使用。如果您有免费的解析接口&#xff0c;可以自行替换原有接口。 不过&#xff0c;不论是否付费&#xff0c;…

JAVA小案例-分别计算100以内奇数和偶数的和

JAVA小案例-分别计算100以内奇数和偶数的和 没啥可说的&#xff0c;就是for循环加if分支&#xff0c;也可以用while写。 代码如下&#xff1a; public class Jiouhe {/*** 分别计算100以内奇数和偶数的和* param args*/public static void main(String[] args){int sum10;in…

老程序员学习AI大模型的焦虑与机遇

前言 在这个科技飞速发展的时代&#xff0c;AI大模型成为了编程领域的热门话题。许多人都认为&#xff0c;学习AI大模型是获取高薪职位和实现职业发展的关键。然而&#xff0c;作为一名拥有十多年编程经验的老程序员&#xff0c;我不得不承认&#xff0c;面对这一新兴技术&…

WebGL开发地理信息系统

WebGL开发地理信息系统&#xff08;GIS&#xff09;是一项复杂且具有挑战性的任务&#xff0c;需要解决一系列技术难点。以下是一些主要的技术难点及其可能的解决方案。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.大规模数据渲染…

SQL语句练习每日5题(一)

一、查询 题目1——查询所有列&#xff1a; 现在运营想要查看用户信息表中所有的数据&#xff0c;请你取出相应结果 答案&#xff1a; select * from user_profile 题目2——查询多列&#xff1a; 请取出用户的设备id对应的性别、年龄和学校的数据 答案&#xff1a;select …

QT:QML中使用Loader加载界面

目录 一.介绍 二.实现 三.效果展示 四.代码 一.介绍 在QML中使用Loader加载界面&#xff0c;可以带来诸多好处&#xff0c;如提高应用程序的启动速度、动态地改变界面内容、根据条件加载不同的组件、更有效地使用内存以及帮助分割应用逻辑等。 1.延迟加载&#xff1a;QML…

区块链学习记录01

在学习过程中所遇到的问题&#xff0c;及其解。 Q:区块链中分布式账本的存在&#xff0c;让所有人都知道资金的变动吗&#xff1f; A:区块链中的分布式账本确实让参与网络的所有节点都能够了解账户之间的资金变动。这是因为区块链是一个分布式数据库&#xff0c;其中包含着所…

Java 基础面试题

文章目录 重载与重写抽象类与接口面向对象a a b 与 a b 的区别final、finalize、finallyString、StringBuild、StringBuffer位运算反射 重载与重写 重载&#xff1a;是在同一个类中&#xff0c;方法名相同&#xff0c;方法参数类型&#xff0c;个数不同&#xff0c;返回类型…

苹果不会在WWDC 2024中推出任何搭载M4芯片的Mac电脑

虽然苹果公司已在上月推出了首搭 M4 芯片的 iPad Pro&#xff0c;不过彭博社的马克・古尔曼在最近的实时通讯中透露苹果公司不会在即将进行的 WWDC 2024 开发者大会中推出任何搭载 M4 芯片的 Mac 电脑&#xff08;不会推出任何硬件产品&#xff09;。 此前报道&#xff0c;苹果…

linux命令别名与shell函数

# 修改网卡配置 alias vinetwork"vi /etc/sysconfig/network-scripts/ifcfg-ens33" 1. 方法和调用在同一个文件 # 定义shell函数,返回值通过$?获取 function say_hello(){ echo "hello shell" return 1 } # 使用shell函数 say_hello # 执行脚本后接收返…

源代码防泄密是什么?

1.源代码防泄密的概念 源代码防泄密是指采取一系列措施和技术手段&#xff0c;以防止源代码被未授权的访问、复制、传播或篡改&#xff0c;从而保障软件的知识产权和系统的安全性。 2.源代码防泄密的重要性 源代码是软件的核心部分&#xff0c;一旦泄露&#xff0c;可能会被…

fastjson序列化对象后属性变更问题

使用fastjson进行JSON序列化存储到数据库后&#xff0c;发现JSON字符串“莫名其妙地”多了一些属性。 public class MyClass {// boolean 类型的属性private boolean isActive;private boolean valid;// int 类型的属性private int id;// 默认构造器public MyClass() {}// 带有…