Language agnostic 哪种语言具有最简单和最健壮的日期解析?

Language agnostic 哪种语言具有最简单和最健壮的日期解析?,language-agnostic,Language Agnostic,我知道java有SimpleDataFormat,它看起来相当强大,但是您需要提前知道它的格式才能正确使用它。 TCL的时钟扫描功能似乎是我见过的最简单、最强大的 e、 g.时钟扫描“1/08/2009 12:33:01 AM”的工作原理与 时钟扫描“8-Jan-2009 12:33:01” 编辑:好的,去掉它必须是内置功能的想法。Perl和Python是可用的最好的吗?Perl的Date::Parse模块(我不知道它可以被认为是语言的内置模块,但它是一个CPAN模块,所以对我来说已经足够好了)

我知道java有SimpleDataFormat,它看起来相当强大,但是您需要提前知道它的格式才能正确使用它。
TCL的时钟扫描功能似乎是我见过的最简单、最强大的

e、 g.时钟扫描“1/08/2009 12:33:01 AM”的工作原理与
时钟扫描“8-Jan-2009 12:33:01”

编辑:好的,去掉它必须是内置功能的想法。Perl和Python是可用的最好的吗?

Perl的Date::Parse模块(我不知道它可以被认为是语言的内置模块,但它是一个CPAN模块,所以对我来说已经足够好了)为我节省了无数个数小时的数据转换项目。从文档()中:

Perl的Date::Parse模块(我不知道它是否可以被认为是该语言的内置模块,但它是一个CPAN模块,对我来说已经足够好了)为我节省了无数个数据转换项目的时间。从文档()中:


日期的问题在于不断出现的国际化问题——即使是看“1/08/2009 12:33:01 AM”的人也会确定应该是1月8日或8月1日


我见过一些日期/时间解析器,它们可以接受大量的格式,并为您提供各种选项以了解实际含义。您还可以根据区域设置为各种格式分配优先级。不幸的是,我现在找不到它。它是作为C++库编写的。我不知道有哪种语言可以处理这种内置的问题。

日期的问题是永远存在的国际化问题——即使是看“1/08/2009 12:33:01 AM”的人也会确定应该是1月8日或8月1日


我见过一些日期/时间解析器,它们可以接受大量的格式,并为您提供各种选项以了解实际含义。您还可以根据区域设置为各种格式分配优先级。不幸的是,我现在找不到它。它是作为C++库编写的。我不知道有哪种语言可以处理这种内置的东西。

我喜欢SQL Server,2008年它的精度达到100纳秒

有关所有可用样式,请参见此处:


您可以使用ISO8601(yyyy-mm-ddThh:mi:ss.mmm)这是一种不依赖于语言或区域设置的安全格式

我喜欢SQL Server的,2008年它的精度达到100纳秒

有关所有可用样式,请参见此处:


您可以使用ISO8601(yyyy-mm-ddThh:mi:ss.mmm),这是一种不依赖于语言或区域设置的安全格式,Python没有内置的库,但是优秀的库提供了一个非常适合的parse()方法

从简单(假设今天是9/25):

对模棱两可者:

>>> parse("10-09-2003")
datetime.datetime(2003, 10, 9, 0, 0)

>>> parse("10-09-2003", dayfirst=True)
datetime.datetime(2003, 9, 10, 0, 0)

>>> parse("10-09-03")
datetime.datetime(2003, 10, 9, 0, 0)

>>> parse("10-09-03", yearfirst=True)
datetime.datetime(2010, 9, 3, 0, 0)
全体董事:

>>> parse("Wed, July 10, '96")
datetime.datetime(1996, 7, 10, 0, 0)

>>> parse("1996.07.10 AD at 15:08:56 PDT", ignoretz=True)
datetime.datetime(1996, 7, 10, 15, 8, 56)

>>> parse("Tuesday, April 12, 1952 AD 3:30:42pm PST", ignoretz=True)
datetime.datetime(1952, 4, 12, 15, 30, 42)

>>> parse("November 5, 1994, 8:15:30 am EST", ignoretz=True)
datetime.datetime(1994, 11, 5, 8, 15, 30)

>>> parse("3rd of May 2001")
datetime.datetime(2001, 5, 3, 0, 0)

>>> parse("5:50 A.M. on June 13, 1990")
datetime.datetime(1990, 6, 13, 5, 50)
请在此处查看相关文档:


Python没有内置的库,但是优秀的库提供了一个非常适合的parse()方法

从简单(假设今天是9/25):

对模棱两可者:

>>> parse("10-09-2003")
datetime.datetime(2003, 10, 9, 0, 0)

>>> parse("10-09-2003", dayfirst=True)
datetime.datetime(2003, 9, 10, 0, 0)

>>> parse("10-09-03")
datetime.datetime(2003, 10, 9, 0, 0)

>>> parse("10-09-03", yearfirst=True)
datetime.datetime(2010, 9, 3, 0, 0)
全体董事:

>>> parse("Wed, July 10, '96")
datetime.datetime(1996, 7, 10, 0, 0)

>>> parse("1996.07.10 AD at 15:08:56 PDT", ignoretz=True)
datetime.datetime(1996, 7, 10, 15, 8, 56)

>>> parse("Tuesday, April 12, 1952 AD 3:30:42pm PST", ignoretz=True)
datetime.datetime(1952, 4, 12, 15, 30, 42)

>>> parse("November 5, 1994, 8:15:30 am EST", ignoretz=True)
datetime.datetime(1994, 11, 5, 8, 15, 30)

>>> parse("3rd of May 2001")
datetime.datetime(2001, 5, 3, 0, 0)

>>> parse("5:50 A.M. on June 13, 1990")
datetime.datetime(1990, 6, 13, 5, 50)
请在此处查看相关文档:


Java做得很好。是的,我知道,它不是自动的,但为什么它应该是自动的呢?在我看来,猜测精确的值总是不好的做法。

Java做得很好。是的,我知道,它不是自动的,但为什么它应该是自动的呢?猜测准确的值在我看来总是不好的做法。

在这种情况下,你会使用ISO8601,yyyy-mm-ddThh:mi:ss.mm我总是使用它,但在试图解析来自不同地方的日期时,它是绝对无用的。在这种情况下,你会使用ISO8601,yyyy-mm-ddThh:mi:ss.mm,我总是使用它,但在尝试解析来自不同地方的日期时,它是绝对无用的不同的地方。我更多地考虑通用脚本或编程语言。我更多地考虑通用脚本或编程语言。猜测是一种不好的做法?这不取决于环境吗?我的意思是,如果你有这种能力,你要么强制输入掩码,要么你必须知道你正在解析的数据。要么是语言本身,要么是开发人员,是吗?猜测是不好的做法?这不取决于环境吗?我的意思是,如果你有这种能力,你要么强制输入掩码,要么你必须知道你正在解析的数据。要么是语言本身,要么是开发者,是吗?