在 Python 中如何将时间转换为小时、分钟和秒的格式

您所在的位置:网站首页 时间转换程序怎么写 在 Python 中如何将时间转换为小时、分钟和秒的格式

在 Python 中如何将时间转换为小时、分钟和秒的格式

2024-06-09 13:46| 来源: 网络整理| 查看: 265

在 Python 中如何将时间转换为小时、分钟和秒的格式​

作者:Jayant Verma

本教程将会讨论时间话题。不过别担心,我们讨论的不是无聊的历史话题,而是会研究如何将以秒为单位的时间转换成以“小时:分钟:秒”为单位。

接下来,我们将用“小时:分钟:秒”为单位表示时间,这也是时间的首选格式,如下:

2:46:40

让我们花一点“时间”,思考一下手头的问题。毋庸置疑,python 自带一些不错的模块,可以帮我们进行转换。但是,在使用内置模块之前,让我们先试试自己编写程序。

自定义函数以将时间转换为小时、分钟和秒​

编写转换函数前,我们首先需要从数学角度思考这个问题。

如何将以秒数表示的时间转换成以首选格式表示?

您将需要获取小时、分钟和秒的值。

假设表示时间的秒数不超过一天之内秒数的总和。如果超过了,我们需要用它除以一天的总秒数,再取余数。

数学上,这表示为:

seconds = seconds % (24 * 3600)

% 运算符会输出余数。

24 * 3600是因为一小时有3600秒(60 * 60),而一天有24小时。

然后,我们可以通过秒数计算小时的值了。

获取小时值

为了获取小时值,我们需要用到 floor (向下取整除法)运算符(//)。

它会返回商的整数部分。

由于我们需要小时数,我们用总秒数(n)除以一小时的秒数(3600)。

数学上,这表示为:

hour = seconds // 3600

接下来,我们需要计算分钟数。

获取分钟值

为计算分钟值,我们需要先将总秒数除以3600,然后取余数。

数学上,这表示为:

seconds = seconds % 3600

然后,再次使用 floor 运算符,用上面的结果计算分钟值。

minutes = seconds // 60

一分钟有六十秒,所以我们向下取整秒数除以60得到的值。

得到分钟值后,我们可以开始计算时间首选格式中的秒数值了。

获取秒数值

为获取秒数值,我们需要再次用总秒数除以一分钟的秒数(60),然后取余数。

数学上,可以这样做:

seconds = seconds % 60

我们将从中得到时间首选格式需要的秒数。

完整代码

让我们把以上全部编译为一个 python 函数。

def convert_to_preferred_format(sec): sec = sec % (24 * 3600) hour = sec // 3600 sec %= 3600 min = sec // 60 sec %= 60 print("seconds value in hours:",hour) print("seconds value in minutes:",min) return "%02d:%02d:%02d" % (hour, min, sec)n = 10000print("Time in preferred format :-",convert(n))

输出:

seconds value in hours: 2seconds value in minutes: 46Time in preferred format :- 02:46:40使用 time 模块​

现在,让我们来看看 python 的一个内置模块,让我们可以仅用一行代码就将秒数转变为时间的首选格式。

在 Unix 系统中,time 模块将纪元(epoch)定义为1970年1月1日的00:00:00(取决于系统)。对于电脑来说,纪元(epoch)基本就是时间的起始点。我们可以把它视为第0天。每当我们用 time 模块转换秒数时,都会用这个纪元时间作为参考点。

如果您想在系统中输出纪元,请使用以下代码行:

time.gmtime(0)

使用以下代码将秒数表示的时间转换为首选格式:

time.strftime("%H:%M:%S", time.gmtime(n))

这行代码用“n”代表时间(以秒为单位),然后分别输出小时、分钟和秒数值。

以下是完整的 python 代码:

import timen=10000time_format = time.strftime("%H:%M:%S", time.gmtime(n))print("Time in preferred format :-",time_format)

输出:

Time in preferred format :- 02:46:40

time 模块还提供了显示额外信息的选项,如日、月和年。

%a 显示当前日期是一周中第几天的缩写名%A 显示当前日期是一周中第几天的完整名%b 显示月份缩写%B 显示月份名全称%c 显示日期和时间%d 用十进制数显示月份中的日期

让我们试试用 %a 和 %b。

import timen=100000000000time_format = time.strftime("Day: %a, Time: %H:%M:%S, Month: %b", time.gmtime(n))print("Time in preferred format :-",time_format)

输出:

Time in preferred format :- Day: Wed, Time: 09:46:40, Month: Nov使用 Datetime 模块​

您还可以使用 DateTime 模块中的 timedelta 方法将用秒数表示的时间转换为首选格式。

该方法会将时间显示为自纪元以来经过的天数、小时数、分钟数和秒数。

使用 Datetime 模块将秒数时间转换为首选格式的代码如下:

import datetimen= 10000000time_format = str(datetime.timedelta(seconds = n))print("Time in preferred format :-",time_format)

输出:

Time in preferred format :- 115 days, 17:46:40结语​

本教程介绍了三种不同的方法,用来将秒数表示的时间转换成用“小时:分钟:秒”。广泛来说,共有两种解决该问题的不同方法。

您可以选择编写自己的函数,或是使用 python 内置模块。本教程中,我们首先尝试了编写自己函数,然后研究了 time 和 DateTime 模块。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3