当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python DateTime转UNIX Timestamp用法及代码示例


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

DateTime 转 Unix 时间戳

为了将 Python DateTime 转换为 Unix 时间戳,我们在本例中导入了一个名为 datetime and 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())))

输出:

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

解释:

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

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

DateTime 转 13 位 Unix 时间戳

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

代码:

Python3


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

输出:

1628497724509.293

DateTime 转换为 UTC 时区的 Unix 时间戳

日历模块提供有用的calendar-related函数。 utc.now 函数返回 UTC 时区的当前时间。在 time 模块中,timegm 函数返回一个 Unix 时间戳。 datetime 类的 timetuple() 函数以命名元组的形式返回 datetime 的属性。要获取 Unix 时间戳,请使用 print(UTC)。

代码:

Python3


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() 函数以命名元组的形式返回 datetime 的属性。要获得以毫秒为单位的时间,请将其乘以 1000。

代码:

Python3


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 时间戳。

代码:

Python3


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

输出:

Unix_Time:  1628188200.0

DateTime 字符串转 Unix 时间戳

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

代码:

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)

输出:

1628209448.0

Unix 时间戳到 Python DateTime

Python中的DateTime模块用于处理Python中与日期和时间相关的问题。 fromtimestamp() 方法是该模块中包含的函数之一。日期类的函数fromtimestamp()计算并返回与指定时间戳对应的日期。允许的时间戳范围从 1970 延伸到 2038。如果时间戳中有任何闰秒,fromtimestamp() 函数将忽略它们。

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

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

代码:

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'))

输出:

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


相关用法


注:本文由纯净天空筛选整理自priyavermaa1198大神的英文原创作品 How to Convert DateTime to UNIX Timestamp in Python ?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。