Python脚本:将随机日期格式转换为固定的yyyy-mm-dd

Python脚本:将随机日期格式转换为固定的yyyy-mm-dd,python,date,converter,Python,Date,Converter,我对python非常陌生,对它了解不多,但我需要制作一个小脚本,当有人以任何格式输入日期时,它会将其转换为yyyy-mm-dd格式。 脚本应该能够共享输入日期的元素,并识别模式 对某些人来说,这可能很容易,也很明显,但我自己做一个是不可能的 提前谢谢 这是一项很难自己完成的任务;您可能想看看哪一种方法比较健壮,可以用来尝试解析任意格式的日期字符串。这是一项很难自己完成的任务;您可能想看看哪种方法具有相当强大的功能,可以用来尝试解析任意格式的日期字符串。您可以使用strftime进行输出(格式为%

我对python非常陌生,对它了解不多,但我需要制作一个小脚本,当有人以任何格式输入日期时,它会将其转换为yyyy-mm-dd格式。 脚本应该能够共享输入日期的元素,并识别模式

对某些人来说,这可能很容易,也很明显,但我自己做一个是不可能的


提前谢谢

这是一项很难自己完成的任务;您可能想看看哪一种方法比较健壮,可以用来尝试解析任意格式的日期字符串。

这是一项很难自己完成的任务;您可能想看看哪种方法具有相当强大的功能,可以用来尝试解析任意格式的日期字符串。

您可以使用
strftime
进行输出(格式为
%Y-%M-%d”

对于解析输入,有一个相应的函数-
strtime
。但您将无法处理“任何格式”。首先你必须知道你得到了什么。否则,你将无法分辨(例如)美国日期和其他日期之间的区别。例如,01.02.03是什么意思?这可以是:

  • 年月日
  • 年月日
  • 年月日

您可以使用
strftime
进行输出(您的格式是
%Y-%M-%d”

对于解析输入,有一个相应的函数-
strtime
。但您将无法处理“任何格式”。首先你必须知道你得到了什么。否则,你将无法分辨(例如)美国日期和其他日期之间的区别。例如,01.02.03是什么意思?这可以是:

  • 年月日
  • 年月日
  • 年月日

您可以这样做(未经测试)


这假设用户将使用自己的本地约定进行日期设置。

您可以这样做(未经测试)


这假设用户将使用自己的本地约定进行日期设置。

许多日期格式都不明确。在世界大部分地区,9/11意味着11月9日。日期解析无法以明确的方式完成。所以你关于“任何格式”的问题只能回答:不可能。你打算如何阅读它们?作为一根绳子?你的程序如何知道哪种是解释日期顺序的本地方式;它已经解决了任意输入解析的问题;它可以配置为以一种或另一种方式解释不明确的日期。有一个具有多个选项的
dateutil.parser
。对于第二部分(转换为yyyy-mm-dd)
datetime
模块有关于如何实现这一点的文档。许多日期格式不明确。在世界大部分地区,9/11意味着11月9日。日期解析无法以明确的方式完成。所以你关于“任何格式”的问题只能回答:不可能。你打算如何阅读它们?作为一根绳子?你的程序如何知道哪种是解释日期顺序的本地方式;它已经解决了任意输入解析的问题;它可以配置为以一种或另一种方式解释不明确的日期。有一个具有多个选项的
dateutil.parser
。对于第二部分(转换为yyyy-mm-dd)
datetime
模块有关于如何实现这一点的文档。请注意,这需要安装额外的python模块,对于新手来说,这不一定是一件容易的事情。@Greenmart一些不可避免地需要学习的东西——当然,比起重新发明轮子来,这不是一个学习曲线……请注意,这需要安装一个额外的python模块,对于一个新手来说,这不一定是件容易的事。@Greenmart一些不可避免地需要学习的东西——当然,比起重新发明轮子来,学习曲线要少一些。。。
import locale
import datetime
...
parsedDate = datetime.strptime(your_string, locale.D_FMT)
print datetime.strftime(parsedDate, "%Y-%M-%d")