【发布时间】:2016-07-04 22:39:14
【问题描述】:
如何将字符串转换为指定的日期时间格式?例如:
str = 'Wed Mar 16 16:12:05 2016 +0800'
如何将其转换为:2016-03-16 16:12:05?
【问题讨论】:
-
什么是
+0800?? -
谢谢大家,我用strptime + strftime,它可以工作
标签: python
如何将字符串转换为指定的日期时间格式?例如:
str = 'Wed Mar 16 16:12:05 2016 +0800'
如何将其转换为:2016-03-16 16:12:05?
【问题讨论】:
+0800 ??
标签: python
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
既然这样,对于字符串类型!
为什么是箭头?我相信它的 api 比 datetime 更好:
>>> 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 库将日期时间字符串通过**strptime()** 转换为日期时间对象,并通过**strftime()** 将日期时间对象转换为日期时间字符串。
格式模式:
演示:
>>> 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'
注意:
srt
【讨论】:
您可以使用 strptime 做到这一点:
import datetime
myDatetime=datetime.datetime.strptime(My_string, format)
格式为 "%Y-%m-%d %H:%M:%S" 表示年月日,时分秒,所以在您的情况下,它会是“日、月、日等的名称...
【讨论】: