def get_publication_date(self, xml_doc):
start_date = get_value_in_tag(xml_doc, "<STR_LIT>")<EOL>if not start_date:<EOL><INDENT>start_date = get_value_in_tag(xml_doc, "<STR_LIT>")<EOL>if not start_date:<EOL><INDENT>start_date = get_value_in_tag(xml_doc, '<STR_LIT>')<EOL>if start_date:<EOL><INDENT>start_date = datetime.datetime.strptime(<EOL>start_date, "<STR_LIT>"<EOL>)<EOL>return start_date.strftime("<STR_LIT>")<EOL><DEDENT><DEDENT>import dateutil.parser<EOL>start_date = re.sub('<STR_LIT>', <EOL>r'<STR_LIT>', start_date)<EOL>try:<EOL><INDENT>date = dateutil.parser.parse(start_date)<EOL><DEDENT>except ValueError:<EOL><INDENT>return '<STR_LIT>'<EOL><DEDENT>if len(start_date.split("<STR_LIT:U+0020>")) == <NUM_LIT:3>:<EOL><INDENT>return date.strftime("<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>return date.strftime("<STR_LIT>")<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if len(start_date) is <NUM_LIT:8>:<EOL><INDENT>start_date = time.strftime(<EOL>'<STR_LIT>', time.strptime(start_date, '<STR_LIT>'))<EOL><DEDENT>elif len(start_date) is <NUM_LIT:6>:<EOL><INDENT>start_date = time.strftime(<EOL>'<STR_LIT>', time.strptime(start_date, '<STR_LIT>'))<EOL><DEDENT>return start_date<EOL><DEDENT>
Return the best effort start_date.