Datetime strptime in python

后端 未结 5 547
小鲜肉
小鲜肉 2021-02-04 08:30

I\'ve tried the following code :

import datetime
d = datetime.datetime.strptime(\"01/27/2012\", \"%m/%d/%Y\")
print(d)

and the output is :

相关标签:
5条回答
  • 2021-02-04 09:02
    import datetime
    
    str_time= "2018-06-03 08:00:00"
    date_date = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S")
    print date_date
    
    0 讨论(0)
  • 2021-02-04 09:12

    There is a difference between datetime.strp[arse]time() and datetime.strf[ormat]time().

    The first one, strptime() allows you to create a date object from a string source, provided you can tell it what format to expect:

    strDate = "11-Apr-2019_09:15:42"
    dateObj = datetime.strptime(strDate, "%d-%b-%Y_%H:%M%S")
    
    print(dateObj)  # shows: 2019-04-11 09:15:42
    

    The second one, strftime() allows you to export your date object to a string in the format of your choosing:

    dateObj = datetime(2019, 4, 11, 9, 19, 25)
    strDate = dateObj.strftime("%m/%d/%y %H:%M:%S")
    
    print(strDate)  # shows: 04/11/19 09:19:25
    

    What you're seeing is simply the default string format of a datetime object because you didn't explicitly tell it what format to use.

    Checkout http://strftime.org/ for a list of all the different string format options that are availble.

    0 讨论(0)
  • 2021-02-04 09:14

    You need to make sure you provide input accordingly

    datetime.strptime(date_string,date_string_format).strftime(convert_to_date_string_format)
    

    To print the date in specified format you need to provide format as below.

    import datetime
    d =datetime.datetime.strptime("01/27/2012","%m/%d/%Y").strftime('%m/%d/%Y')
    print d
    

    Output:

    01/27/2012
    

    >>Demo<<

    0 讨论(0)
  • 2021-02-04 09:17

    As astutely noted in the comments, you are parsing to a datetime object using the format you specified.

    strptime(...) is String Parse Time. You have specified the format for how the string should be interpreted to initialize a Datetime object, but that format is only utilized for initialization. By default, when you go to print that datetime object, you are getting the representation of str(DatetimeObjectInstance) (in your case, str(d)).

    If you want a different format, you should use String Format Time (strftime(...))

    0 讨论(0)
  • 2021-02-04 09:27

    datetime.strptime(date_string, format) function returns a datetime object corresponding to date_string, parsed according to format. When you print datetime object, it is formatted as a string in ISO 8601 format, YYYY-MM-DDTHH:MM:SS

    References:

    • https://docs.python.org/2/library/datetime.html#datetime.datetime.strptime
    • https://docs.python.org/2/library/datetime.html#datetime.datetime.isoformat
    0 讨论(0)
提交回复
热议问题