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

Python 如何将字符串转换为日期时间格式?,python,Python,如何将字符串转换为指定的日期时间格式?例如: str = 'Wed Mar 16 16:12:05 2016 +0800' 如何将其转换为:2016-03-16 16:12:05?您可以使用strtime执行此操作: import datetime myDatetime=datetime.datetime.strptime(My_string, format) 格式为%Y-%m-%d%H:%m:%S“表示年-月-日、时-分-秒,因此在您的情况下,它将是“日、月、日等的名称…”箭头是以非

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

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

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

您可以使用strtime执行此操作:

import datetime
myDatetime=datetime.datetime.strptime(My_string, format)

格式为
%Y-%m-%d%H:%m:%S“
表示年-月-日、时-分-秒,因此在您的情况下,它将是“日、月、日等的名称…”

箭头是以非常直接的方式执行此操作的一个很好的模块:

我更喜欢datetime,因为它更简洁

对于您的具体示例:

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
由于这是采取,为字符串类型

为什么是箭?我相信它有一个比datetime更好的api:

>>> 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)
>>> 

使用
datetime
库通过
**strtime()**
将datetime字符串转换为datetime对象,并通过
**strftime()**
将datetime对象转换为datetime字符串

格式模式:

  • %a工作日作为区域设置的缩写名称
  • %d以零填充十进制数表示的月份日期
  • %b月作为区域设置的缩写名称
  • %H小时(24小时时钟)作为零填充十进制数
  • %M分钟作为零填充十进制数
  • %S秒作为零填充十进制数
  • 演示:

    >>> 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'
    
    注意

  • 不要使用保留字作为变量名。e、 g.
    srt

  • 什么是
    +0800
    ?谢谢大家,我使用了strtime+strftime,它也可以工作,不管谁否决了这个,请解释一下原因?这就是原因,为什么我喜欢写评论而不是回答哇,我不明白评论有人,他们会毫无理由地否决你的答案啊,我现在明白了。我喜欢回答,分享知识,让那些无缘无故否决投票的人失望。是的,我参考了手册,它可以工作,非常感谢所有善良的人们的帮助:)