📜  Python| time.mktime() 方法

📅  最后修改于: 2022-05-13 01:54:48.788000             🧑  作者: Mango

Python| time.mktime() 方法

Time 模块time.mktime()方法用于将time.struct_time对象或包含与time.struct_time对象对应的 9 个元素的元组转换为本地时间以来经过的秒数。

此方法是time.localtime()的反函数,它将自纪元以来以秒表示的时间转换为本地时间的time.struct_time对象。

以下是 time.struct_time 对象中存在的值:

IndexAttributeValues
0tm_year(for example, 1993)
1tm_monrange [1, 12]
2tm_mdayrange [1, 31]
3tm_hourrange [0, 23]
4tm_minrange [0, 59]
5tm_secrange [0, 61]
6tm_wdayrange [0, 6], Monday is 0
7tm_ydayrange [1, 366]
8tm_isdst0, 1 or -1
N/Atm_zoneabbreviation of timezone name
N/Atm_gmtoffoffset east of UTC in seconds

注意:纪元是时间开始的点,取决于平台。在 Windows 和大多数 Unix 系统上,纪元是 1970 年 1 月 1 日 00:00:00 (UTC),并且闰秒不计入纪元以来的时间(以秒为单位)。要检查给定平台上的纪元,我们可以使用 time.gmtime(0)。

代码 #1:使用time.mktime()方法

# Python program to explain time.mktime() method 
    
# importing time module 
import time 
  
  
# time.gmtime() method will returns
# a time.struct_time object in UTC
# for the time expressed in seconds
# since the epoch
seconds = 1000000
obj1 = time.gmtime(seconds)
  
# Print time.struct_time object (in UTC)
print(obj1)
  
# Convert the time.struct_time
# object to local time expressed in
# seconds since the epoch
# using time.mktime() method
time_sec = time.mktime(obj1)
  
# Print the local time in seconds
print("\nLocal time (in seconds):", time_sec)
  
  
# time.strptime() method parse 
# a string representing a time
# according to the given format
# and returns a time.struct_time object
  
# Time string 
t = "14 Sep 2019 10:50:00"
  
# Parse the time string using
# time.strptime() method
obj2 = time.strptime(t, "% d % b % Y % H:% M:% S")
  
# Convert the time.struct_time
# object to local time expressed in
# seconds since the epoch
# using time.mktime() method
time_sec = time.mktime(obj2)
  
# Print the local time in seconds
print("\nLocal time (in seconds):", time_sec)
输出:
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=12, tm_hour=13, tm_min=46,
tm_sec=40, tm_wday=0, tm_yday=12, tm_isdst=0)

Local time (in seconds): 980200.0

Local time (in seconds): 1568438400.0

代码#2:如果参数是一个元组

# Python program to explain time.mktime() method 
    
# importing time module 
import time 
  
  
# A tuple containing 9 elements
# corresponding to time.struct_time object
# for example: consider the below object
# time.struct_time(tm_year = 2019, tm_mon = 9, tm_mday = 13, 
# tm_hour = 1, tm_min = 30, tm_sec = 26, tm_wday = 4,
# tm_yday = 256, tm_isdst = 0)
  
# Tuple corresponding to above 
# time.struct_time object will be
tup = (2019, 9, 13, 1, 30, 26, 4, 256, 0)
  
# Convert the above specified tuple
# to local time expressed in seconds
# since the epoch 
# using time.mktime() method
time_sec = time.mktime(tup)
  
# Print the time
print("Local Time (in seconds since the epoch):", time_sec)
输出:
Local Time (in seconds since the epoch): 1568318426.0

代码#3:显示time.mktime()方法是time.localtime() () 方法的反函数

# Python program to explain time.mktime() method 
    
# importing time module 
import time 
    
# Get the current time
# expressed in seconds 
# since the epoch using
# time.time() method
curr_time = time.time() 
  
# Print the value
# returned by time.time() method
print("Current time (in seconds since the epoch):", curr_time)
  
  
# Convert the time expressed in seconds
# since the epoch to
# a time.struct_time object
# in local time using
# time.localtime() method 
obj = time.localtime(curr_time)
  
# Print the time.struct_time object
print("\ntime.struct_time object:")
print(obj, "\n")
  
  
# Convert the time.struct_time object
# back to the time expressed
# in seconds since the epoch
# in local time using
# time.mktime() method
time_sec = time.mktime(obj)
  
# Print the time
print("Time (in seconds since the epoch):", time_sec) 
输出:
Current time (in seconds since the epoch): 1568318426.2286296

time.struct_time object:
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=13, tm_hour=1, tm_min=30,
tm_sec=26, tm_wday=4, tm_yday=256, tm_isdst=0) 

Time (in seconds since the epoch): 1568318426.0

参考资料: https://docs。 Python.org/3/library/time.html#time.mktime