Shashank Punuru
Shashank Punuru

Reputation: 23

Convert 'yyyy-mm-dd' string to 3-tuple datetime objects in python 2.7

I am trying to convert a list of 'yyyy-mm-dd' strings into a list of datetime objects using strptime.

    dates = ['2014-01-01', '2014-03-07']
    datetime_objects = [datetime.strptime(date, '%Y-%m-%d') for date in dates]

Printing datetime_objects give me:

    [datetime.datetime(2014, 1, 1, 0, 0), datetime.datetime(2014, 3, 7, 0, 0)]

I need 3-tuple objects instead and don't need hours and minutes. How can I get this?

    [datetime.datetime(2011, 2, 21), datetime.datetime(2011, 9, 5)]. 

I am using Python 2.7.

Upvotes: 0

Views: 1246

Answers (2)

fixxxer
fixxxer

Reputation: 16154

Each datetime object has the .date() option:

In [167]: date_tuple = []

In [168]: for date in dates:
    x = datetime.datetime.strptime(date, '%Y-%m-%d')
    date_tuple.append((x.date()))    .....:     

In [169]: date_tuple Out[169]: [datetime.date(2014, 1, 1), datetime.date(2014, 3, 7)]

Upvotes: 0

chepner
chepner

Reputation: 531968

You don't want datetime objects; you want date objects, which are provided by the date method:

from datetime import datetime

dates = ['2014-01-01', '2014-03-07']
date_objects = [datetime.strptime(date, '%Y-%m-%d').date()
                     for date in dates]

Upvotes: 1

Related Questions