Python 一篇文章看懂时间日期对象

yizhihongxing

Python 一篇文章看懂时间日期对象

概述

日期和时间是我们在编程中经常需要涉及的一个领域。在 Python 中,处理日期时间相对较为简单,主要通过 datetime 模块来实现。本文将从以下几个方面来介绍 Python 中的日期时间处理:

  1. datetime 模块的基本使用
  2. 字符串与 datetime 对象之间的转换
  3. 时间戳的表示及相关操作

datetime 模块的基本使用

datetime 模块是 Python 处理日期时间的核心模块,主要提供了日期、时间、日期时间等对象,并定义了一些常用操作方法。下面介绍一些常用的方法:

datetime 对象

datetime 对象用于表示一个日期时间,包含年、月、日、时、分、秒、毫秒等属性。

>>> import datetime
>>> now = datetime.datetime.now()
>>> print(now)
2021-06-15 17:23:22.505391
>>> print(now.year, now.month, now.day)
2021 6 15
>>> print(now.hour, now.minute, now.second, now.microsecond)
17 23 22 505391

date 对象

date 对象用于表示一个日期,包含年、月、日属性。

>>> today = datetime.date.today()
>>> print(today)
2021-06-15
>>> print(today.year, today.month, today.day)
2021 6 15

time 对象

time 对象用于表示一个时间,包含时、分、秒等属性。

>>> t = datetime.time(16, 30, 45)
>>> print(t)
16:30:45
>>> print(t.hour, t.minute, t.second, t.microsecond)
16 30 45 0

timedelta 对象

timedelta 对象表示两个日期时间之间的时间差。

>>> d1 = datetime.datetime(2021, 1, 1)
>>> d2 = datetime.datetime(2021, 6, 15)
>>> delta = d2 - d1
>>> print(delta)
165 days, 0:00:00

字符串与 datetime 对象之间的转换

在 Python 中,我们可以通过 strptime() 方法将字符串转换成 datetime 对象,也可以通过 strftime() 方法将 datetime 对象格式化成字符串。

字符串转 datetime 对象

>>> dt_str = '2021-06-15 17:23:22.505391'
>>> dt_obj = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S.%f')
>>> print(dt_obj)
2021-06-15 17:23:22.505391

datetime 对象转字符串

>>> dt_obj = datetime.datetime.now()
>>> dt_str = dt_obj.strftime('%Y-%m-%d %H:%M:%S.%f')
>>> print(dt_str)
2021-06-15 17:23:22.505391

时间戳的表示及相关操作

时间戳是指从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC,格林威治时间)起到现在的总秒数。在 Python 中,可以通过 time 模块中的 time() 方法获取当前时间戳,也可以通过 mktime() 方法将 datetime 对象转换成时间戳。

>>> import time
>>> now_timestamp = time.time()
>>> print(now_timestamp)
1623770602.509085
>>> dt_obj = datetime.datetime.now()
>>> dt_timestamp = time.mktime(dt_obj.timetuple())
>>> print(dt_timestamp)
1623770602.0

时间戳与 datetime 对象之间的转换

>>> ts = 1623770602.0
>>> dt_obj = datetime.datetime.fromtimestamp(ts)
>>> print(dt_obj)
2021-06-15 17:23:22

示例说明

示例一

假设我们要计算从今天到指定日期还有多少天,可以使用如下代码:

import datetime

today = datetime.date.today()
target_date_str = '2021-07-01'
target_date = datetime.datetime.strptime(target_date_str, '%Y-%m-%d').date()
delta = target_date - today
print(delta.days)

说明:首先获取当前日期对象 today,然后通过 strptime() 方法将目标日期字符串转换成日期对象 target_date,接着计算两个日期之间的时间差 delta,并输出 delta 的天数。

示例二

假设我们要将例一中的目标日期字符串转换成时间戳,可以使用以下代码:

import datetime
import time

target_date_str = '2021-07-01 00:00:00'
target_date = datetime.datetime.strptime(target_date_str, '%Y-%m-%d %H:%M:%S')
ts = time.mktime(target_date.timetuple())
print(ts)

说明:首先通过 strptime() 方法将目标日期字符串转换成 datetime 对象 target_date,并使用 mktime() 方法将其转换成时间戳 ts,并输出 ts 的值。

总结

本文介绍了 Python 中处理日期时间的基本方法,包括 datetime 模块的基本使用、字符串与 datetime 对象之间的转换以及时间戳的表示及相关操作,并给出了两个示例说明。通过本文的学习,相信大家已经掌握了 Python 中日期时间的处理方法,可以在自己的项目中灵活运用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 一篇文章看懂时间日期对象 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • python 画二维、三维点之间的线段实现方法

    下面是使用 Python 画二维、三维点之间的线段实现方法的完整攻略。 二维坐标系中绘制线段 在 Python 中,我们可以使用 matplotlib 库中的 pyplot 模块来绘制二维坐标系中的线段。 绘制单个线段 如果要绘制两个坐标点之间的线段,可以使用 plot() 函数,该函数接受两个数组作为参数,分别表示 x 轴和 y 轴的坐标值。例如: imp…

    python 2023年5月19日
    00
  • Python时间整数问题

    【问题标题】:Python time integer issuePython时间整数问题 【发布时间】:2023-04-04 03:14:01 【问题描述】: 我正在尝试计算“当时”和“现在”之间的时间差。我改变了格式,以便更好地比较它(我不需要秒或纳秒等) ‘then’ 时间来自加密,并且正在被解析以进行比较,这就是我担心的错误。 def decrypt_…

    Python开发 2023年4月6日
    00
  • Python中文编码那些事

    Python中文编码那些事 在Python编程中,中文编码是一个必须要面对的问题。这篇文章将以详细的方式来讲解Python中文编码的相关知识和常见问题。 为什么会出现中文编码问题 在计算机中,所有的数据都是以二进制的形式存储和传递的。而对于中文这种非ASCII字符,如果要被存储和传递必须要使用一种特殊的编码方式。在Python中,常见的中文编码方式包括了GB…

    python 2023年5月31日
    00
  • python Event事件、进程池与线程池、协程解析

    Python是一门多范式编程语言,支持面向对象、函数式,以及异步编程等多种编程风格。在Python中,事件、进程池、线程池、协程等技术都可以用来实现异步编程,提高程序的并发性能。 Python Event事件 什么是Python Event事件? Python Event事件是一种简单的同步原语,用于实现线程之间的通信,特别是在多线程程序中进行条件等待和通知…

    python 2023年5月19日
    00
  • django mysql数据库及图片上传接口详解

    标题:django mysql数据库及图片上传接口详解 介绍 本文将介绍如何在Django应用程序中使用MySQL数据库,并将详细介绍如何设置和使用MySQL。除此之外,本文还将介绍如何在Django应用程序中实现图片上传功能的接口。 安装Django和MySQL 在开始使用Django和MySQL之前,我们需要确保这两个工具已经安装和配置完成。 安装Dja…

    python 2023年6月3日
    00
  • Python入门教程(十八)Python的For循环

    Python的for循环是一个非常常用的控制结构,它可以与列表,元组,字典等Python内置数据结构一起使用,用于遍历序列中的元素。在本篇文章中,我们将给大家介绍有关Python的for循环的完整攻略,包括了for循环的语法、循环遍历和嵌套循环等内容。 一、Python的For循环语法 Python的for循环语法如下所示: for 变量 in 可迭代对象:…

    python 2023年6月5日
    00
  • python高手之路python处理excel文件(方法汇总)

    标题:Python高手之路:Python处理Excel文件(方法汇总) 本文将介绍多种方法使用Python处理Excel文件。主要包括三种常见的Python第三方库(pandas、openpyxl、xlrd/xlwt),以及一种使用comtypes实现的win32com方法。下面分别进行详细讲解。 一、 Pandas Pandas是Python数据分析中使用…

    python 2023年5月13日
    00
  • 一些Python中的二维数组的操作方法

    在Python中,二维数组是常见的数据结构。本文将详细讲解一些Python中的二维数组的操作方法。 创建二维数组 在Python中,可以使用列表嵌套的方式来二维数组。下面是一个示例: # 示例1:创建二维数组 rows, cols = (3, 4) arr = [[0 for j in range(cols)] for i in range(rows)] p…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部