如何将Python日期格式转换为MySQL的10位日期格式
本文将介绍如何将Python日期格式转换为MySQL的10位日期格式。我们使用Python提供的time模块中的mktime()方法。
mktime()方法
Python的time模块方法mktime()是localtime()的逆函数。
Time模块的time.mktime()方法用于将time.struct_time对象或表示time.struct_time对象的9个元素的元组(表示自纪元以来的秒数)转换为本地系统的时间。
语法
mktime()方法的语法如下所示。
Time.mktime(t)
其中, t 是一个 time.struct_time 对象或包含9个元素的元组,对应于time.struct_time对象。
如果输入值不表示有效的时间,则会引发溢出错误或值错误。
如果日期以datetime对象的形式出现
如果日期以datetime对象的形式出现,则可以直接获取该对象的时间元组并将其传递给time.mktime()函数。
示例1
在此示例中,我们将检查给定的日期是否以datetime对象的形式出现。
import time
from datetime import date
from datetime import datetime
my_date = date.today()
my_date = my_date.timetuple()
print("Time tuple:",my_date)
print(time.mktime(my_date))
输出
执行上述程序后,得到以下输出。
Time tuple: time.struct_time(tm_year=2022, tm_mon=5, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=139, tm_isdst=-1)
1652898600.0
示例2
让我们看一下另一个示例 –
import datetime
import time
my_date = datetime.datetime(2020, 5, 17)
print(time.mktime(my_date.timetuple()))
输出
这将产生以下输出-
1589673600.0
如果日期以字符串的形式表达
如果日期以字符串的形式表达,我们可以使用 strptime() 方法解析字符串。然后使用 time.mktime() 函数创建符合MySQL日期格式的日期。
示例
在下面的示例代码中,我们使用strptime()方法获取时间对象,然后使用time.mktime()方法转换为MySQL日期格式。
import time
my_time = time.strptime("01-01-18", "%d-%m-%y")
print(time.mktime(my_time))
输出
输出结果如下:
1514745000.0
使用strftime()
The strftime() 方法在Python中接受一个格式字符串,并相应地转换当前日期时间对象的内容,以字符串的形式返回结果。
如果将’%s’作为格式字符串传递给此方法,该方法将日期时间值转换为毫秒,并将结果作为10位数字返回。
示例
让我们看一个示例:
import datetime
date_time = datetime.datetime(2021, 10, 17)
digitVal = date_time.strftime('%s')
print(digitVal)
输出
1634428800
使用timestamp()方法
python的 timestamp() 方法返回自纪元时间(1970年1月1日)以来的时间值(以秒为单位)。
在以下示例中,我们使用 timestamp() 方法将日期“17-10-2021”转换为10位数的值:
示例
import datetime
date_time = datetime.datetime(2021, 10, 17)
digitVal = date_time.timestamp()
print(digitVal)