Python:按日期和小时拆分时间戳

时间:2014-03-25 04:52:00

标签: python split timestamp

我有以下格式的时间戳列表:

  

2013年1月1日3:30

我几周前开始学习python,我不知道如何分割日期和时间。你们中的任何人都可以帮助我吗?

输出应该在列上,包括

  

2013年1月1日

和一栏包括

  

3:30

3 个答案:

答案 0 :(得分:0)

我认为您需要的只是str.split ...

>>> s = '1/1/2013 3:30'
>>> s.split()
['1/1/2013', '3:30']

如果它在列表中,您可以使用列表理解:

>>> lst = ['1/1/2013 3:30', '1/2/2013 3:30']
>>> [s.split() for s in lst]
[['1/1/2013', '3:30'], ['1/2/2013', '3:30']]

答案 1 :(得分:0)

如果要在代码中进一步使用此日期和时间来对此数据执行操作(例如比较日期),则可以将此时间戳转换为datetime对象。请参阅日期时间模块上的documentation

您可以使用以下代码将时间戳转换为datetime对象。

>>> import datetime
>>> timestamp = datetime.datetime.strptime("1/1/2013 3:30", "%d/%m/%y %H:%M")
>>> timestamp
datetime.datetime(2013, 1, 1, 3, 30)
>>> timestamp.date()
datetime.date(2013, 1, 1)
>>> timestamp.time()
datetime.time(3, 30)

如果您只想删除日期和时间以将其用作字符串,请使用mgilson建议的方法。

答案 2 :(得分:0)

这是伪代码,可以完成您在评论中提到的内容:

f = file("path/to/file.csv", "r")
timestamp_column = 10

def get_updated_row(i, row):
    row = row.split(',')

    try:
        timestamp = row.pop(timestamp_column) #remove column

        if i == 0:
            #header
            row.extend(["date", "time"]) #add columns

        else:
            #normal row
            date = timestamp[0]
            time = timestamp[1]
            row.extend([date, time])

    except IndexError:
        print("ERROR: Unable to parse row {0}".format(i))

    return ','.join(row)

with f.read() as csv:
    for i, row in enumerate(csv):
        print(get_updated_row(i, row)) #write to file here instead if necessary