How do I convert String into Date object

Discussion in 'Python' started by MrPink, Aug 13, 2011.

  1. MrPink

    MrPink Guest

    Is this the correct way to convert a String into a Date?
    I only have dates and no time.

    import time, datetime

    oDate = time.strptime('07/27/2011', '%m/%d/%Y')
    print oDate

    Thanks,
     
    MrPink, Aug 13, 2011
    #1
    1. Advertising

  2. MrPink

    MrPink Guest

    I have file of records delimited by spaces.
    I need to import the date string and convert them into date datatypes.

    '07/27/2011' 'Event 1 Description'
    '07/28/2011' 'Event 2 Description'
    '07/29/2011' 'Event 3 Description'

    I just discovered that my oDate is not an object, but a structure and
    not a date datatype.
    I'm stumped. Is there a way to convert a string into a date datatype
    for comparisons, equality, etc?

    Thanks,

    On Aug 13, 3:14 pm, MrPink <> wrote:
    > Is this the correct way to convert a String into a Date?
    > I only have dates and no time.
    >
    > import time, datetime
    >
    > oDate = time.strptime('07/27/2011', '%m/%d/%Y')
    > print oDate
    >
    > Thanks,
     
    MrPink, Aug 13, 2011
    #2
    1. Advertising

  3. Am 13.08.2011 21:26, schrieb MrPink:
    > I have file of records delimited by spaces.
    > I need to import the date string and convert them into date datatypes.
    >
    > '07/27/2011' 'Event 1 Description'
    > '07/28/2011' 'Event 2 Description'
    > '07/29/2011' 'Event 3 Description'
    >
    > I just discovered that my oDate is not an object, but a structure and
    > not a date datatype.
    > I'm stumped. Is there a way to convert a string into a date datatype
    > for comparisons, equality, etc?
    >

    There is. Only not in one step, if you want a date and not a datetime
    instance:

    >>> import datetime
    >>> oDateTime = datetime.datetime.strptime('07/27/2011', '%m/%d/%Y')
    >>> oDateTime

    datetime.datetime(2011, 7, 27, 0, 0)
    >>> oDate = oDateTime.date()
    >>> oDate

    datetime.date(2011, 7, 27)
    >>>


    HTH
    Sibylle
     
    Sibylle Koczian, Aug 13, 2011
    #3
  4. MrPink

    Chris Rebert Guest

    On Sat, Aug 13, 2011 at 12:14 PM, MrPink <> wrote:
    > Is this the correct way to convert a String into a Date?
    > I only have dates and no time.
    >
    > import time, datetime
    >
    > oDate = time.strptime('07/27/2011', '%m/%d/%Y')
    > print oDate


    from datetime import datetime
    the_date = datetime.strptime('07/27/2011', '%m/%d/%Y').date()

    Cheers,
    Chris
     
    Chris Rebert, Aug 13, 2011
    #4
  5. You can use datetime objects:

    >>> dt1 = datetime.datetime.strptime('07/27/2011',"%m/%d/%Y")
    >>> dt2 =datetime.datetime.strptime('07/28/2011',"%m/%d/%Y")
    >>> dt1 == dt2

    False
    >>> dt1 > dt2

    False
    >>> dt1 < dt2

    True
    >>> dt1 - dt2

    datetime.timedelta(-1)


    On 13/08/11 21:26, MrPink wrote:
    > I have file of records delimited by spaces.
    > I need to import the date string and convert them into date datatypes.
    >
    > '07/27/2011' 'Event 1 Description'
    > '07/28/2011' 'Event 2 Description'
    > '07/29/2011' 'Event 3 Description'
    >
    > I just discovered that my oDate is not an object, but a structure and
    > not a date datatype.
    > I'm stumped. Is there a way to convert a string into a date datatype
    > for comparisons, equality, etc?
    >
    > Thanks,
    >
    > On Aug 13, 3:14 pm, MrPink<> wrote:
    >> Is this the correct way to convert a String into a Date?
    >> I only have dates and no time.
    >>
    >> import time, datetime
    >>
    >> oDate = time.strptime('07/27/2011', '%m/%d/%Y')
    >> print oDate
    >>
    >> Thanks,
     
    Rafael Durán Castañeda, Aug 13, 2011
    #5
  6. MrPink

    MrPink Guest

    BTW, here is the Python version I'm using.
    Will this make a difference with the solutions you guys provided?

    Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
    [GCC 4.2.1 (Apple Inc. build 5646)] on darwin

    Also, what editor do you guys use?
    There are so many to chose from.

    On Aug 13, 4:11 pm, Rafael Durán Castañeda
    <> wrote:
    > You can use datetime objects:
    >
    >  >>> dt1 = datetime.datetime.strptime('07/27/2011',"%m/%d/%Y")
    >  >>> dt2 =datetime.datetime.strptime('07/28/2011',"%m/%d/%Y")
    >  >>> dt1 == dt2
    > False
    >  >>> dt1 > dt2
    > False
    >  >>> dt1 < dt2
    > True
    >  >>> dt1 - dt2
    > datetime.timedelta(-1)
    >
    > On 13/08/11 21:26, MrPink wrote:
    >
    >
    >
    >
    >
    >
    >
    > > I have file of records delimited by spaces.
    > > I need to import the date string and convert them into date datatypes.

    >
    > > '07/27/2011' 'Event 1 Description'
    > > '07/28/2011' 'Event 2 Description'
    > > '07/29/2011' 'Event 3 Description'

    >
    > > I just discovered that my oDate is not an object, but a structure and
    > > not a date datatype.
    > > I'm stumped.  Is there a way to convert a string into a date datatype
    > > for comparisons, equality, etc?

    >
    > > Thanks,

    >
    > > On Aug 13, 3:14 pm, MrPink<>  wrote:
    > >> Is this the correct way to convert a String into a Date?
    > >> I only have dates and no time.

    >
    > >> import time, datetime

    >
    > >> oDate = time.strptime('07/27/2011', '%m/%d/%Y')
    > >> print oDate

    >
    > >> Thanks,
     
    MrPink, Aug 13, 2011
    #6
  7. MrPink

    Peter Otten Guest

    MrPink wrote:

    > I have file of records delimited by spaces.
    > I need to import the date string and convert them into date datatypes.
    >
    > '07/27/2011' 'Event 1 Description'
    > '07/28/2011' 'Event 2 Description'
    > '07/29/2011' 'Event 3 Description'
    >
    > I just discovered that my oDate is not an object, but a structure and
    > not a date datatype.
    > I'm stumped. Is there a way to convert a string into a date datatype
    > for comparisons, equality, etc?
    >
    > Thanks,
    >
    > On Aug 13, 3:14 pm, MrPink <> wrote:
    >> Is this the correct way to convert a String into a Date?
    >> I only have dates and no time.
    >>
    >> import time, datetime


    That looks like a fifty-percent chance to try the "wrong" module ;)

    >> oDate = time.strptime('07/27/2011', '%m/%d/%Y')
    >> print oDate


    >>> import datetime as dt
    >>> d = dt.date.strptime("07/27/2011", "%m/%d/%Y")

    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    AttributeError: type object 'datetime.date' has no attribute 'strptime'

    So you cannot construct a date from a date string either.
    One more time:

    >>> d = dt.datetime.strptime("07/27/2011", "%m/%d/%Y")
    >>> d

    datetime.datetime(2011, 7, 27, 0, 0)
    >>> d.date()

    datetime.date(2011, 7, 27)

    $ cat csv_dates.csv
    '07/27/2011' 'Event 1 Description'
    '07/28/2011' 'Event 2 Description'
    '07/29/2011' 'Event 3 Description'
    $ cat csv_dates.py
    import datetime
    import csv

    def rows(instream):
    for row in csv.reader(instream, delimiter=" ", quotechar="'"):
    row[0] = datetime.datetime.strptime(row[0], '%m/%d/%Y').date()
    yield row

    if __name__ == "__main__":
    import sys
    filename = sys.argv[1]

    with open(filename, "rb") as instream:
    for row in rows(instream):
    print row
    $ python csv_dates.py csv_dates.csv
    [datetime.date(2011, 7, 27), 'Event 1 Description']
    [datetime.date(2011, 7, 28), 'Event 2 Description']
    [datetime.date(2011, 7, 29), 'Event 3 Description']
     
    Peter Otten, Aug 13, 2011
    #7
  8. MrPink

    Roy Smith Guest

    In article
    <>,
    MrPink <> wrote:

    > Is this the correct way to convert a String into a Date?
    > I only have dates and no time.


    You have already received a number of good replies, but let me throw out
    one more idea. If you ever need to do something with dates and times
    which the standard datetime module can't handle, take a look at the
    excellent dateutil module by Gustavo Niemeyer
    (http://labix.org/python-dateutil).
     
    Roy Smith, Aug 14, 2011
    #8
  9. MrPink

    MrPink Guest

    I found this solution.

    Python: Convert String Date to Date Object
    http://slaptijack.com/programming/python-convert-string-date-to-date-object/

    On Aug 13, 3:14 pm, MrPink <> wrote:
    > Is this the correct way to convert a String into a Date?
    > I only have dates and no time.
    >
    > import time, datetime
    >
    > oDate = time.strptime('07/27/2011', '%m/%d/%Y')
    > print oDate
    >
    > Thanks,
     
    MrPink, Aug 14, 2011
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Brian Candy
    Replies:
    2
    Views:
    1,172
    Janaka
    Feb 18, 2004
  2. Peter Grison

    Date, date date date....

    Peter Grison, May 28, 2004, in forum: Java
    Replies:
    10
    Views:
    3,278
    Michael Borgwardt
    May 30, 2004
  3. wgan
    Replies:
    7
    Views:
    597
    Roedy Green
    Jul 8, 2004
  4. Replies:
    8
    Views:
    786
    Boris
    May 1, 2007
  5. djray
    Replies:
    7
    Views:
    122
Loading...

Share This Page