在 Python 中如何将时间转换为小时、分钟和秒的格式 |
您所在的位置:网站首页 › 时间转换程序怎么写 › 在 Python 中如何将时间转换为小时、分钟和秒的格式 |
在 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:40time 模块还提供了显示额外信息的选项,如日、月和年。 %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 |