4m1*_*4j1 20 python datetime date python-2.7
我在json文件中有一些日期,我正在搜索与今天日期相对应的日期:
import os
import time
from datetime import datetime
from pytz import timezone
input_file = file(FILE, "r")
j = json.loads(input_file.read().decode("utf-8-sig"))
os.environ['TZ'] = 'CET'
for item in j:
lt = time.strftime('%A %d %B')
st = item['start']
st = datetime.strptime(st, '%A %d %B')
if st == lt :
item['start'] = datetime.strptime(st,'%H:%M')
Run Code Online (Sandbox Code Playgroud)
我有这样的错误:
File "/home/--/--/--/app/route.py", line 35, in file.py
st = datetime.strptime(st, '%A %d %B')
File "/usr/lib/python2.7/_strptime.py", line 328, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: 02:05
Run Code Online (Sandbox Code Playgroud)
你有什么建议吗 ?
Max*_*ant 28
值st
的st = datetime.strptime(st, '%A %d %B')
线像01 01 2013 02:05
和strptime
无法解析此.事实上,除了日期之外你还需要一个小时...你需要%H:%M
在你的strptime 添加.
你必须解析所有输入字符串,你不能只忽略部分.
from datetime import date, datetime
for item in j:
st = datetime.strptime(item['start'], '%A %d %B %H:%M')
if st.date() == date.today():
item['start'] = st.time()
Run Code Online (Sandbox Code Playgroud)
在这里,我们通过使用更多datetime
对象而不是尝试使用字符串来比较日期与今天的日期.
另一种方法是仅通过部分中的item['start']
字符串(分裂出去只是时间),但实在是没有点在这里,而不是当你可以只在一个步骤解析一切首位.
最好的答案是使用from dateutil import parser
。
用法:
from dateutil import parser
datetime_obj = parser.parse('2018-02-06T13:12:18.1278015Z')
print datetime_obj
# output: datetime.datetime(2018, 2, 6, 13, 12, 18, 127801, tzinfo=tzutc())
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
72633 次 |
最近记录: |