如何删除:在 python 中的 + 或 - 之后
How to remove : after a + or - in python
我有一个看起来像这样的时间戳 2015-11-06T14:20:14.011+01:00
。我想将它解析为日期时间。
我的想法是可以使用 %Y-%m-%dT%H:%M:%S.%f%z
作为表示。
但问题是时区中的冒号。我如何删除时区中的冒号或者有更好的方法作为 %z
?
import re
original = '2015-11-06T14:20:14.011+01:00'
replaced = re.sub(r'([+-]\d+):(\d+)$', r'', original)
# replaced == '2015-11-06T14:20:14.011+0100'
仅当冒号前面有加号或减号,并且被数字包围直到字符串末尾时,它才会替换冒号。
您有一个 ISO 8601 日期时间字符串。不要费心去解析它或手动摆弄它(参见:XY Problem). Use the iso8601 library for Python.
import iso8601
parsed = iso8601.parse_date("2015-11-06T14:20:14.011+01:00")
如果要从中删除时区信息,请使用replace
方法。
tz_stripped = parsed.replace(tzinfo=None)
我认为最好的方法是使用 dateutils
https://labix.org/python-dateutil
from dateutil.parser import parse
original = '2015-11-06T14:20:14.011+01:00'
print "Original Date {}".format(original)
new_date = parse(original)
print new_date
print type(new_date)
# print new_date.hour
# print new_date.minute
# print new_date.second
print "New Date 1 {}".format(new_date.strftime('%Y-%m-%d %H:%M:%S'))
print "New Date 2 {}".format(new_date.strftime('%Y-%m-%dT%H:%M:%S.%f%z'))
输出:
Original Date 2015-11-06T14:20:14.011+01:00
2015-11-06 14:20:14.011000+01:00
<type 'datetime.datetime'>
New Date 1 2015-11-06 14:20:14
New Date 2 2015-11-06T14:20:14.011000+0100
此致
我有一个看起来像这样的时间戳 2015-11-06T14:20:14.011+01:00
。我想将它解析为日期时间。
我的想法是可以使用 %Y-%m-%dT%H:%M:%S.%f%z
作为表示。
但问题是时区中的冒号。我如何删除时区中的冒号或者有更好的方法作为 %z
?
import re
original = '2015-11-06T14:20:14.011+01:00'
replaced = re.sub(r'([+-]\d+):(\d+)$', r'', original)
# replaced == '2015-11-06T14:20:14.011+0100'
仅当冒号前面有加号或减号,并且被数字包围直到字符串末尾时,它才会替换冒号。
您有一个 ISO 8601 日期时间字符串。不要费心去解析它或手动摆弄它(参见:XY Problem). Use the iso8601 library for Python.
import iso8601
parsed = iso8601.parse_date("2015-11-06T14:20:14.011+01:00")
如果要从中删除时区信息,请使用replace
方法。
tz_stripped = parsed.replace(tzinfo=None)
我认为最好的方法是使用 dateutils https://labix.org/python-dateutil
from dateutil.parser import parse
original = '2015-11-06T14:20:14.011+01:00'
print "Original Date {}".format(original)
new_date = parse(original)
print new_date
print type(new_date)
# print new_date.hour
# print new_date.minute
# print new_date.second
print "New Date 1 {}".format(new_date.strftime('%Y-%m-%d %H:%M:%S'))
print "New Date 2 {}".format(new_date.strftime('%Y-%m-%dT%H:%M:%S.%f%z'))
输出:
Original Date 2015-11-06T14:20:14.011+01:00
2015-11-06 14:20:14.011000+01:00
<type 'datetime.datetime'>
New Date 1 2015-11-06 14:20:14
New Date 2 2015-11-06T14:20:14.011000+0100
此致