📌  相关文章
📜  如何在Python中将 DateTime 转换为 UNIX 时间戳?

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

如何在Python中将 DateTime 转换为 UNIX 时间戳?

Unix 时间映射是一个单一的有符号整数,每秒增长 1,允许计算机存储和操作传统的日期系统。然后将软件翻译成人类可读的格式。 Unix 时间戳是从 1970 年 1 月 1 日开始计算的秒数。在本文中,我们将看到如何将 DateTime 转换为 Unix 时间戳。

日期时间到 Unix 时间戳

为了将Python DateTime 转换为 Unix 时间戳,我们在这个例子中导入了一个名为 datetime 和 time 的模块,并且变量 date_time 已经被声明并分配了 datetime。时间/日期(2021、7、26、21、20)。年是2021,月是7,日是26,小时是21,分钟是20。

代码:

Python3
# importing datetime module
import datetime
import time
  
# assigned regular string date
date_time = datetime.datetime(2021, 7, 26, 21, 20)
  
# print regular python date&time
print("date_time =>",date_time)
  
# displaying unix timestamp after conversion
print("unix_timestamp => ",
      (time.mktime(date_time.timetuple())))


Python3
import time
import datetime
  
presentDate = datetime.datetime.now()
unix_timestamp = datetime.datetime.timestamp(presentDate)*1000
print(unix_timestamp)


Python3
import calendar
import datetime
  
date = datetime.datetime.utcnow()
utc_time = calendar.timegm(date.utctimetuple())
print(utc_time)


Python3
import datetime
import time
  
ms = datetime.datetime.now()
print(time.mktime(ms.timetuple()) * 1000)


Python3
import datetime
import time
  
datetime = datetime.date(2021, 8, 6)
print("Unix_Time: ",
      (time.mktime(datetime.timetuple())))


Python3
import datetime
  
date_example = "8/6/2021, 05:54:8"
date_format = datetime.datetime.strptime(date_example,
                                         "%m/%d/%Y, %H:%M:%S")
unix_time = datetime.datetime.timestamp(date_format)
print(unix_time)


Python3
# importing datetime module
import datetime 
  
# assigned unix time
unix_time = 1627334400
  
date_time = datetime.datetime.fromtimestamp(unix_time)
  
# print unix time stamp
print("Unix_Time =>",unix_time)
  
# displaying date and time in a regular 
# string format
print("Date & Time =>" ,
      date_time.strftime('%Y-%m-%d %H:%M:%S'))


输出:

date_time => 2021-07-26 21:20:00
unix_timestamp =>  1627314600.0

解释:



日期和时间操作类由 datetime 模块提供。本地时间的反函数是mktime()。它接受一个结构体 time 或一个完整的 9 元组作为参数,并返回一个与 time() 兼容的浮点数。它还用于将日期时间转换为 Unix 时间戳。

datetime.date 对象的 timetuple() 方法返回时间 object.struct time。 struct time 对象是一个命名元组,可以使用索引或名称检索。 timetuple()函数返回的命名元组的年、月和日字段将根据日期对象设置,而小时、分钟和秒字段将设置为零。

日期时间到 13 位数字的 Unix 时间戳

要获取当前时间,请使用 datetime.now()。 datetime 类的 timetuple()函数将日期时间的属性作为命名元组返回。 13 位时间戳必须乘以 1000。

代码:

蟒蛇3

import time
import datetime
  
presentDate = datetime.datetime.now()
unix_timestamp = datetime.datetime.timestamp(presentDate)*1000
print(unix_timestamp)

输出:

1628497724509.293

DateTime 到 UTC 时区中的 Unix 时间戳

日历模块提供了有用的日历相关功能。 utc.now函数返回 UTC 时区的当前时间。在 time 模块中,timegm函数返回一个 Unix 时间戳。 datetime 类的 timetuple()函数将日期时间的属性作为命名元组返回。要获取 Unix 时间戳,请使用 print(UTC)。

代码:

蟒蛇3

import calendar
import datetime
  
date = datetime.datetime.utcnow()
utc_time = calendar.timegm(date.utctimetuple())
print(utc_time)

输出:



1628497783

DateTime 到 Unix 时间戳毫秒

datetime.now()函数用于获取当前时间。 mktime 方法是一种时间方法,它是本地时间的反函数;它用于将日期时间转换为 Unix 时间戳毫秒。 datetime 类的 timetuple()函数将日期时间的属性作为命名元组返回。要获得以毫秒为单位的时间,请将其乘以 1000。

代码:

蟒蛇3

import datetime
import time
  
ms = datetime.datetime.now()
print(time.mktime(ms.timetuple()) * 1000)

输出:

1628497823000.0

Datetime.date 到 Unix 时间戳

time.date() 是一个只接受日期的函数。在这种情况下,2021 是年,8 是月份,6 是日。 mktime() 是一种时间方法,它是本地时间的反函数;它用于将日期转换为 Unix 时间戳。

代码:

蟒蛇3

import datetime
import time
  
datetime = datetime.date(2021, 8, 6)
print("Unix_Time: ",
      (time.mktime(datetime.timetuple())))

输出:

Unix_Time:  1628188200.0

DateTime字符串到 Unix 时间戳

在这种情况下,日期和时间以字符串格式提供。这里,8代表月份,6代表日,2021代表年份,05代表小时,54代表分钟,8代表秒。 strptime() 是一种日期时间模块方法,用于将字符串转换为日期时间和时间对象。 timestamp()函数返回当前位置的当前时间。

代码:

蟒蛇3

import datetime
  
date_example = "8/6/2021, 05:54:8"
date_format = datetime.datetime.strptime(date_example,
                                         "%m/%d/%Y, %H:%M:%S")
unix_time = datetime.datetime.timestamp(date_format)
print(unix_time)

输出:

1628209448.0

Unix 时间戳到Python DateTime

在Python datetime模块是用来对付在Python日期和时间相关的问题。 fromtimestamp() 方法是此模块中包含的功能之一。日期类的函数fromtimestamp() 计算并返回与指定时间戳对应的日期。允许的时间戳范围从 1970 年到 2038 年。如果时间戳中有任何闰秒,fromtimestamp()函数忽略它们。

首先,我们从 datetime 模块导入 datetime 类。然后将 UNIX 值对象存储在一个变量中。然后我们使用 datetime.fromtimestamp() 方法来检索时间和日期。

strftime()函数是 datetime 模块中的另一个函数。此函数有助于以特定格式返回 DateTime。此函数用于将日期和时间对象转换为字符串表示形式。上述代码中的格式代码为%d、%m、%Y、%H、%M、%S,分别表示天、月、年、小时、分钟、秒。

代码:

蟒蛇3

# importing datetime module
import datetime 
  
# assigned unix time
unix_time = 1627334400
  
date_time = datetime.datetime.fromtimestamp(unix_time)
  
# print unix time stamp
print("Unix_Time =>",unix_time)
  
# displaying date and time in a regular 
# string format
print("Date & Time =>" ,
      date_time.strftime('%Y-%m-%d %H:%M:%S'))

输出:

Unix_Time => 1627334400
Date & Time => 2021-07-27 02:50:00