当前位置: 首页>>技术教程>>正文


使用Python进行DateTime操作

1. Python DateTime,TimeDelta,Strftime(Format)及其示例

在Python中,date,time和datetime类提供了许多函数来处理日期、时间和时间间隔(time interval)。 Date和DateTime是Python中的对象,因此在操作它们时,实际上是在操作对象,而不是字符串或时间戳。每当您操纵日期或时间时,都需要导入DateTime函数。

Python中的DateTime类主要分为5类。

  • date —日期(月,日,年)
  • time-一天中时间(小时,分钟,秒,微秒)
  • DateTime-时间和日期的组合(月,日,年,小时,秒,微秒)
  • time delta —用于操纵日期的时间段
  • tzinfo —处理时区的抽象类

第1步)在为DateTime运行代码之前,请务必导入date-time模块,如下面的屏幕快照所示。

这些import语句是Python库中预定义的功能,可让您无需编写任何代码即可操纵日期和时间。

第2步)接下来,创建日期对象的实例。

第三步)接下来,打印日期并运行代码。

使用date.today()打印日期

date.today函数具有与之关联的几个属性。我们可以单独打印日/月/年以及其他内容

我们来看一个例子

Python当前日期和时间: now() today()

第1步)像日期对象一样,我们在Python中也可以使用日期时间(datetime)对象。它给出日期和时间小时、分钟、秒和毫秒。

第2步)使用datetime对象,您还可以调用time类。

假设我们只想打印当前时间而不显示日期。

第3步)我们将工作日索引应用到工作日的ArrayList中,以了解今天是哪一天

  • 根据当前工作日的不同,为工作日的运算符(wd)分配(0–6)编号。在这里,我们声明了几天的列表数组(星期一,星期二,星期三…星期日)。
  • 使用该索引值可以知道是哪一天。在我们的例子中,它是#0,代表星期一,因此在输出中,它将打印出“which is a monday”。

如何使用 Strftime()格式化日期和时间输出

到目前为止,我们已经了解了如何在Python中使用DateTime和Date对象。我们将进一步学习如何使用格式化功能来格式化时间和日期。

第1步)首先,我们将看到一个简单的如何格式化年份的步骤。通过一个例子来理解。

  • 我们使用了“strftime函数”用于格式化。
  • 此函数使用不同的控制码提供输出。
  • 每个控制代码类似于不同的参数,例如年,月,周日和日期[(%y /%Y-年),(%a /%A-工作日,(%b /%B-月),(%d-月中的天)]]。
  • 在我们的例子中,(“%Y”)类似于年份,它打印出带有世纪的完整年份(例如,2018年)。

第2步)现在,如果将(“%Y”)替换为小写字母(即“%y”)并执行代码,则仅输出(18),而不显示(2018)。年份的世纪将不会显示,如下面的屏幕截图所示

第3步)Strftime函数可以分别声明日期,日,月和年。同样,在strftime函数中对控制代码进行小的更改后,即可设置文本样式的格式。

在strftime函数内部,如果将(%a)替换为大写字母A,即(%A),输出将输出为“Friday”,而不是缩写“Fri”。

第4步)借助“strftime”函数,我们还可以检索本地系统时间,日期或日期时间。

  1. %C-表示本地日期和时间
  2. %x-表示本地日期
  3. %X-表示本地时间

第5步骤)“strftime”函数允许您以24小时格式或12小时格式调用时间。

如何使用Timedelta对象

使用timedelta对象,您可以计算未来和过去的时间。换句话说,预测任何特殊的日期,日期或时间都是一个时间跨度。

请记住,此功能不是用于打印时间或日期,而是用于计算未来或过去的时间内容。让我们看一个例子,以更好地理解它。

第1步)要运行Timedelta对象,您需要先声明import语句,然后执行代码

第2步)让我们获取今天的日期和时间,以检查我们的导入声明是否运行良好。执行代码后,它会打印出今天的日期

第3步)我们将看到如何通过delta对象计算离现在now()一年后的日期。当我们运行代码时,它将给出预期的输出。

第4步)如何使用时间增量(time delta)从当前日期和时间计算未来日期的另一个示例

步骤5)让我们看一个更复杂的例子。我想确定新年后一共过去了多少天。

  • 使用today = date.today(),我们将获得今天的日期
  • 我们知道新年总是在1月1日,但是这一年可能会有所不同。使用nyd = date(today.year,1,1),我们将新年存储在变量nyd中
  • 如果nyd <today:比较当前日期是否大于新年。如果是,则进入while循环
  • (((today-nyd).days)给出当前日期和新年之间的差异(以DAYS为单位)

总结

为了以简单和复杂的方式处理日期和时间,DateTime模块提供了不同的时间类或类别,例如

  • date —操作日期(月,日,年)
  • 时间-一天中的时间(小时,分钟,秒,微秒)
  • DateTime-时间和日期的组合(月,日,年,小时,秒,微秒)
  • timedelta —用于操纵日期的时间长度
  • tzinfo —处理时区的抽象类

使用DateTime对象

  • 在执行代码之前必须导入DateTime对象
  • 使用date.today函数可打印单个日期/月份/年份以及索引日期
  • 使用date.time对象获取小时、分钟、秒和毫秒的时间

使用“strftime”函数格式化时间输出

  • 使用“strftime”函数更改年份的格式
  • 分别打印日期、日期、月份和年份,
  • 格式化时间为12小时或24小时模式

Timedelta对象

  • 使用timedelta对象,您可以计算未来和过去的时间
  • 计算从当前时间到特殊日期(生日)剩余的总天数
  • 计算从当前时间算起的特定天(生日)经过的总天数

以上代码的Jupyter文件在此链接中可以找到:

https://github.com/BindhuVinodh/Datemanipulationswithpython

参考资料

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/4580.html,未经允许,请勿转载。