您的位置:

如何实现字符串转timestamp

一、字符串转时间格式

有时候我们需要将字符串表示的时间转化成timestamp,我们可以先将字符串转换成时间格式,然后再将时间格式转换成timestamp。对于常见的字符串时间格式,可以使用Python的datetime模块进行转换。

import datetime

str_time = '2021-07-01 10:12:30'
time_format = '%Y-%m-%d %H:%M:%S'
dt = datetime.datetime.strptime(str_time, time_format)
timestamp = dt.timestamp()

以上代码通过strptime方法将字符串转换成datetime格式,再使用timestamp方法转换成timestamp。

二、字符串转数字

在某些情况下,我们需要先将字符串转换成数字,然后再转换成timestamp。Python中提供了int和float方法用于将字符串转换成对应的数字。

str_num = '123456'
num = int(str_num)
timestamp = num / 1000

以上代码将字符串123456转换成整数123456,然后除以1000得到对应的timestamp。

三、字符串转成字节方法

在Python中,字符串可以通过encode方法转换成对应的字节。

str_time = '2021-07-01 10:12:30'
time_format = '%Y-%m-%d %H:%M:%S'
byte_time = str_time.encode('utf-8')
dt = datetime.datetime.strptime(byte_time.decode('utf-8'), time_format)
timestamp = dt.timestamp()

以上代码首先使用encode将字符串转换成字节,然后使用decode将字节转换成字符串后转换成datetime格式,再转换成timestamp。

四、字符串转日期

有时候我们只需要将字符串转换成日期,可以使用dateutil模块进行转换。dateutil是Python中强大的日期处理工具库,支持自动解析字符串时间戳和手动定义时间戳等多种方式。

from dateutil.parser import parse

str_date = '2021-07-01'
date = parse(str_date)
timestamp = date.timestamp()

以上代码使用parse方法将字符串转换成datetime格式,再将其转换成timestamp。

五、字符串转json

字符串是常见的json数据形式,我们可以使用json模块将字符串解析成json格式,再转换成timestamp。

import json

str_json = '{"time": "2021-07-01 10:12:30"}'
json_data = json.loads(str_json)
str_time = json_data['time']
time_format = '%Y-%m-%d %H:%M:%S'
dt = datetime.datetime.strptime(str_time, time_format)
timestamp = dt.timestamp()

以上代码首先使用loads方法将字符串解析成json格式,然后获取json数据中表示时间的字符串,转换成datetime格式,再转换成timestamp。

六、字符串转化为数字

在Python中,字符串可以使用正则表达式进行匹配提取其中数字,并转换成对应的数字形式,最后将其转换成timestamp。

import re

str_time = '2021-07-01 10:12:30'
match = re.search(r'\d+', str_time)
num = int(match.group())
timestamp = num / 1000

以上代码使用正则表达式匹配字符串中的数字,转换成整数,再除以1000得到timestamp。

七、字符串转数组

有时候字符串表示的时间可能包含多个时间信息,可以使用split方法将字符串转换成数组,再将数组中每个时间信息转换成timestamp。

str_times = '2021-07-01 10:12:30,2021-07-02 10:12:30'
str_time_list = str_times.split(',')
time_format = '%Y-%m-%d %H:%M:%S'
timestamps = []
for str_time in str_time_list:
    dt = datetime.datetime.strptime(str_time, time_format)
    timestamps.append(dt.timestamp())

以上代码使用split方法将字符串转换成数组,遍历数组中每个时间信息,将其转换成datetime格式,再转换成timestamp并添加到timestamps数组中。

八、字符串转int

如果字符串表示的时间只有整数形式的,可以使用int方法将其转换成整数后再除以1000得到timestamp。

str_num = '1627737150'
num = int(str_num)
timestamp = num / 1000

以上代码将字符串转换成整数,再除以1000得到对应的timestamp。

九、字符串转整数

对于一些表示时间的字符串,可能只包含整数形式的时间信息,我们可以使用正则表达式匹配其中的数字,转换成对应的timestamp。

import re

str_time = '1627737150'
match = re.search(r'\d+', str_time)
num = int(match.group())
timestamp = num

以上代码使用正则表达式匹配字符串中的数字,转换成整数,直接得到对应的timestamp。