Python datetime add

前端 未结 1 1107
渐次进展
渐次进展 2021-01-04 11:11

I have a datetime value in string format. How can I change the format from a \"-\" separated date to a \".\" separated date. I also need to add 6 hours to let the data be in

1条回答
  •  孤街浪徒
    2021-01-04 12:00

    You are adding the string representation of the timedelta():

    >>> from datetime import timedelta
    >>> print timedelta(minutes=6*60)
    6:00:00
    

    Sum datetime and timedelta objects, not their string representations; only create a string after summing the objects:

    from datetime import datetime, timedelta
    s = '2013-08-11 09:48:49'
    mytime = datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
    mytime += timedelta(hours=6)
    print mytime.strftime("%Y.%m.%d %H:%M:%S")
    

    This results in:

    >>> from datetime import datetime, timedelta
    >>> s = '2013-08-11 09:48:49'
    >>> mytime = datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
    >>> mytime += timedelta(hours=6)
    >>> print mytime.strftime("%Y.%m.%d %H:%M:%S")
    2013.08.11 15:48:49
    

    However, you probably want to use real timezone objects instead, I recommend you use the pytz library:

    >>> from pytz import timezone, utc
    >>> eastern = timezone('US/Eastern')
    >>> utctime = utc.localize(datetime.strptime(s, "%Y-%m-%d %H:%M:%S"))
    >>> local_tz = utctime.astimezone(eastern)
    >>> print mytime.strftime("%Y.%m.%d %H:%M:%S")
    2013.08.11 15:48:49
    

    This will take into account daylight saving time too, for example.

    0 讨论(0)
提交回复
热议问题