如何将字符串转换为日期时间格式?

时间:2016-03-18 08:51:12

标签: python

如何将字符串转换为指定的日期时间格式?例如:

str = 'Wed Mar 16 16:12:05 2016 +0800'   

如何将其转换为:2016-03-16 16:12:05

3 个答案:

答案 0 :(得分:3)

Arrow是一个非常直接的方式: http://crsmithdev.com/arrow/

我将箭头指向日期时间,因为它更简洁

对于您的具体示例:

import arrow
date_str = 'Wed Mar 16 16:12:05 2016 +0800'
date = arrow.get(date_str,'ddd MMM D HH:mm:SS YYYY Z')
print date
2016-03-16T16:12:00.050000+08:00
>>> 

此外,命名字符串

是一个坏主意
str

这样做,对于字符串类型!

为什么选择箭头?我相信它比日期时间更好:

>>> date.humanize()
3: u'2 days ago'
>>> date.resolution
4: datetime.timedelta(0, 0, 1)
>>> date.datetime
5: datetime.datetime(2016, 3, 16, 16, 12, 0, 50000, tzinfo=tzoffset(None, 28800))
>>> date.utctimetuple()
7: time.struct_time(tm_year=2016, tm_mon=3, tm_mday=16, tm_hour=8, tm_min=12, tm_sec=0, tm_wday=2, tm_yday=76, tm_isdst=0)
>>> 

答案 1 :(得分:2)

您可以使用 strptime

执行此操作
import datetime
myDatetime=datetime.datetime.strptime(My_string, format)

格式为"%Y-%m-%d %H:%M:%S"年月日,小时分秒,因此在您的情况下,它将是'日,月,日等的名称......

答案 2 :(得分:2)

使用datetime库将日期时间字符串转换为**strptime()**的datetime对象,并将日期时间对象转换为日期时间**strftime()**

格式化模式:

  1. %a 工作日作为区域设置的缩写名称。
  2. %d 作为零填充十进制数的月中的某一天。
  3. %b 月份为区域设置的缩写名称。
  4. %H 小时(24小时制)作为零填充十进制数。
  5. %M 分钟为零填充十进制数。
  6. %S 其次是零填充十进制数。
  7. more details..

    <强>演示:

    >>> from datetime import datetime
    >>> result_date =  datetime.strptime('Wed Mar 16 16:12:05 2016', '%a %b %d %H:%M:%S %Y')
    >>> result_date
    datetime.datetime(2016, 3, 16, 16, 12, 5)
    >>> result_date.strftime("%Y-%m-%d %H:%M:%S")
    '2016-03-16 16:12:05'
    

    注意

    1. 不要将保留字用作变量名。例如srt