如何从字符串中删除多个字符?

时间:2019-07-10 06:54:46

标签: python-3.x

a = "Sat Apr 27 2019 00:00:14 GMT+0530 (India Standard Time)"

我将示例字符串保存到变量a。我希望以这种方式定义输出。删除了日期(星期六)部分,并且此(2019年4月27日)部分转换为“ 27-4-2019”。我是编程的新手,将不胜感激。

我有一个时间序列的数据,并且代码应与在多个时间间隔获取的其他样本相匹配,且格式与“ a”相同

3 个答案:

答案 0 :(得分:3)

尝试DateParser,请看下面的示例:

import dateparser 
a = "Sat Apr 27 2019 00:00:14 GMT+0530 (India Standard Time)"
x = dateparser.parse(a) 
x.date().strftime("%d-%m-%Y") 

输出:

已解析的日期时间对象:

  

datetime.datetime(2019,4,27,0,0,14,tzinfo = StaticTzInfo   'UTC + 05:30')

提取的输出将是:

  

27-04-2019

答案 1 :(得分:1)

以下是使用python标准datetime模块而不使用任何其他第三方模块/库的答案:

from datetime import datetime

dt_string = "Sat Apr 27 2019 00:00:14 GMT+0530 (India Standard Time)"

dt = datetime.strptime(' '.join(dt_string.split(' ')[:6]), '%a %b %d %Y %H:%M:%S %Z%z')

print(dt.strftime('%d-%m-%Y'))

输出

'27-04-2019'

答案 2 :(得分:1)

“(印度标准时间)” 不是时区的标准格式。如果“ IST” ,则“%Z” 将是日期时间格式代码的指令。假设您的所有数据都包含“(印度标准时间)” ,那么代码如下-

from datetime import datetime
a = "Sat Apr 27 2019 00:00:14 GMT+0530 (India Standard Time)"
date_object = datetime.strptime(a, '%a %b %d %Y %H:%M:%S GMT%z (India Standard Time)')
new_date = date_object.strftime("%d-%-m-%Y")

或者,如果字符串'a'包含其他时区名称,则可以应用以下内容。

from datetime import datetime
import re

a = "Sat Apr 27 2019 00:00:14 GMT+0530 (India Standard Time)"
a= re.sub(r'\([^()]*\)', '', a)
date_object = datetime.strptime(date_string, '%a %b %d %Y %H:%M:%S GMT%z ')
new_date = date_object.strftime("%d-%-m-%Y")